Update signature files to the new format

The new format is described in tools/metalava/FORMAT.md.

Fixes: 116589402 Switch signature files over to the v2 format
Fixes: 112626813 Drop "synchronized" modifier from the signature format
Fixes: 122358225 Omit overriding methods that only differ in final [...]
Fixes: 73088715 API Review: Need doclava to output nullability
Fixes: 79739773 API Review: Metalava enforcing constants are constant
Exempt-From-Owner-Approval: Large-scale tooling change
Test: make sdk, make update-api, make checkapi
Change-Id: Ia248aece5250e84e47c815c601133b698bf644c2
diff --git a/api/current.txt b/api/current.txt
index 07614ca..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();
@@ -24031,8 +23903,8 @@
     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 {
@@ -24046,18 +23918,18 @@
     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();
@@ -24072,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 {
@@ -24097,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 {
@@ -24138,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();
@@ -24187,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
   }
@@ -24212,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();
@@ -24230,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
@@ -24245,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;
@@ -24263,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();
@@ -24301,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;
   }
@@ -24591,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();
@@ -24606,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;
@@ -24647,44 +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 boolean isPlaybackActive();
-    method public java.lang.Object sendSessionCommand(android.media.Session2Command, android.os.Bundle);
+    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 void onPlaybackActiveChanged(android.media.MediaController2, boolean);
-    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 {
@@ -24696,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
@@ -24709,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
@@ -24726,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
@@ -24803,11 +24675,11 @@
     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
@@ -24817,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
@@ -24838,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
@@ -24848,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
@@ -24967,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
@@ -25020,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
@@ -25122,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
@@ -25132,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;
@@ -25275,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 {
@@ -25303,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();
@@ -25315,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();
@@ -25339,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);
@@ -25374,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);
@@ -25413,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
@@ -25427,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
@@ -25531,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
@@ -25659,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();
   }
 
@@ -25676,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
@@ -25731,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();
@@ -25740,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();
@@ -25750,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;
@@ -25763,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);
@@ -25776,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
@@ -25801,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
@@ -25812,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 {
@@ -25846,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
   }
@@ -25871,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);
@@ -25882,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
@@ -25890,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);
@@ -25904,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();
@@ -25919,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();
@@ -25943,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
@@ -25968,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);
@@ -25993,81 +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 @NonNull public String getSessionId();
+    method @NonNull public android.media.Session2Token getSessionToken();
     method public boolean isPlaybackActive();
-    method public java.lang.Object sendSessionCommand(android.media.MediaSession2.ControllerInfo, android.media.Session2Command, android.os.Bundle);
+    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 {
@@ -26082,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();
@@ -26130,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 {
@@ -26174,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();
   }
@@ -26281,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);
@@ -26290,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
@@ -26316,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
@@ -26330,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);
@@ -26368,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);
@@ -26396,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();
@@ -26429,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
@@ -26447,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 {
@@ -26562,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 {
@@ -26585,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 {
@@ -26603,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 {
@@ -26631,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 {
@@ -26670,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;
@@ -26696,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 {
@@ -26740,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();
@@ -26982,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;
@@ -27011,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);
@@ -27029,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;
@@ -27070,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;
   }
 
@@ -27100,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;
   }
 
@@ -27152,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);
   }
 
 }
@@ -27165,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 {
@@ -27186,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);
@@ -27206,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);
   }
 
 }
@@ -27221,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);
   }
 
@@ -27234,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);
   }
 
 }
@@ -27296,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
@@ -27324,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 {
@@ -27357,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 {
@@ -27392,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);
   }
 
 }
@@ -27414,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 {
@@ -27479,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();
@@ -27498,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);
@@ -27564,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();
   }
@@ -27589,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();
@@ -27633,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);
@@ -27647,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;
   }
@@ -27696,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;
   }
 
@@ -27711,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);
@@ -27724,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 {
@@ -27836,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
@@ -27911,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
@@ -27951,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
@@ -28024,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
@@ -28104,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
@@ -28143,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
@@ -28175,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);
@@ -28234,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();
@@ -28255,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);
@@ -28277,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();
@@ -28295,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);
@@ -28314,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);
   }
 
 }
@@ -28470,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);
   }
@@ -28550,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();
@@ -28580,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);
@@ -28594,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();
   }
 
 }
@@ -28615,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 {
@@ -28701,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 {
@@ -28726,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 {
@@ -28741,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
   }
@@ -28796,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 {
@@ -28817,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);
@@ -28830,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;
@@ -28855,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[]);
@@ -28872,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;
@@ -28888,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;
@@ -28903,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 {
@@ -28919,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;
@@ -28934,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);
@@ -28970,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 {
@@ -29033,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);
   }
 
@@ -29041,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);
@@ -29071,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);
@@ -29079,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[]);
@@ -29120,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);
@@ -29143,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;
@@ -29191,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();
@@ -29222,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();
@@ -29230,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
@@ -29273,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 {
@@ -29291,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[]);
   }
 
@@ -29324,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);
@@ -29351,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);
   }
 
@@ -29389,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
@@ -29404,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;
   }
@@ -29448,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;
   }
 
@@ -29506,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;
@@ -29535,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
@@ -29560,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();
@@ -29649,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
@@ -29682,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);
   }
 
 }
@@ -29700,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;
@@ -29739,128 +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 android.net.MacAddress getRandomizedMacAddress();
-    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;
   }
@@ -29890,42 +29756,42 @@
 
   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();
@@ -29935,67 +29801,67 @@
     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 {
@@ -30029,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 {
@@ -30067,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;
   }
 
@@ -30099,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 {
@@ -30109,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 {
@@ -30140,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 {
@@ -30164,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);
@@ -30209,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);
   }
 
 }
@@ -30220,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 {
@@ -30240,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);
   }
 
 }
@@ -30255,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);
@@ -30274,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;
   }
@@ -30286,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;
   }
@@ -30298,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;
   }
@@ -30313,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;
@@ -30336,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;
   }
@@ -30348,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 {
@@ -30368,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;
   }
 
@@ -30379,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;
@@ -30391,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;
@@ -30412,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);
   }
 
 }
@@ -30516,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 {
@@ -30536,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);
   }
 
 }
@@ -30563,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();
   }
 
@@ -30574,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();
@@ -30591,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";
   }
 
 }
@@ -30608,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 {
@@ -30626,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;
@@ -30661,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
@@ -30703,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 {
@@ -30736,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);
   }
 
 }
@@ -30751,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
@@ -30783,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 {
@@ -30794,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";
   }
 
 }
@@ -30820,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;
@@ -30834,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();
@@ -30841,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);
@@ -30866,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;
@@ -30882,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();
   }
 
 }
@@ -30966,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);
@@ -30981,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();
@@ -31191,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();
   }
 
@@ -31298,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);
@@ -32047,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);
@@ -32109,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);
@@ -32128,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);
@@ -32173,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);
@@ -32456,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
@@ -32594,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);
@@ -32602,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);
@@ -32621,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);
@@ -32667,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);
@@ -33016,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);
@@ -33034,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);
@@ -33297,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);
@@ -33318,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);
@@ -33537,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 {
@@ -33552,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);
@@ -33562,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);
@@ -33584,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);
@@ -33810,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 {
@@ -33827,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);
@@ -33843,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);
@@ -33885,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);
@@ -33896,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);
@@ -33931,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();
   }
 
@@ -34003,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
@@ -34026,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 {
@@ -34151,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;
@@ -34226,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 {
@@ -34241,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 {
@@ -34257,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 {
@@ -34265,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();
@@ -34336,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();
@@ -34374,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;
@@ -34409,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
@@ -34466,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 {
@@ -34489,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);
@@ -34524,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();
@@ -34539,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
@@ -34553,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
@@ -34573,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;
@@ -34631,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();
@@ -34639,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();
@@ -34654,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
@@ -34697,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;
   }
 
@@ -34826,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;
@@ -34843,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
@@ -34851,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
   }
 
@@ -34868,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
@@ -34921,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;
@@ -34936,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
@@ -34958,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
@@ -34969,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);
   }
@@ -34988,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();
@@ -35004,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
@@ -35036,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 {
@@ -35079,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 {
@@ -35113,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 {
@@ -35146,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();
@@ -35181,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 {
@@ -35199,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();
@@ -35219,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 {
@@ -35243,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();
@@ -35262,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
@@ -35348,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 {
@@ -35377,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);
@@ -35392,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);
@@ -35456,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
@@ -35518,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
@@ -35530,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";
   }
 
 }
@@ -35640,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);
   }
 
 }
@@ -36053,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;
@@ -36064,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
@@ -36080,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 {
@@ -36098,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;
@@ -36192,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 {
@@ -36205,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
@@ -36235,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();
@@ -36262,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
@@ -36285,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;
@@ -36343,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);
   }
 
 }
@@ -36360,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);
   }
 
 }
@@ -36372,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>);
   }
 
 }
@@ -36448,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
@@ -36555,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
@@ -36603,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 {
@@ -36617,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 {
@@ -36666,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 {
@@ -36738,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 {
@@ -36797,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
@@ -36815,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
   }
 
@@ -37216,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
@@ -37259,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
@@ -37316,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
@@ -37394,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
@@ -37427,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
@@ -37491,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 {
@@ -37660,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
@@ -37712,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
@@ -37727,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
@@ -37833,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 {
@@ -37854,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
@@ -37873,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
@@ -37891,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
@@ -38086,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
@@ -38115,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
@@ -38197,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();
   }
 
@@ -38217,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
@@ -38624,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[]);
@@ -39032,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 {
@@ -39199,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
@@ -39297,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
@@ -39323,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
@@ -39380,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
@@ -39388,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";
   }
 
 }
@@ -39437,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[]);
@@ -39501,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);
@@ -39518,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);
@@ -39536,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);
@@ -39562,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 {
@@ -39648,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);
@@ -39690,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);
@@ -39699,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;
@@ -39717,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;
@@ -39975,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 {
@@ -40012,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;
   }
@@ -40030,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;
   }
 
@@ -40069,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;
@@ -40099,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);
@@ -40151,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 {
@@ -40178,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 {
@@ -40373,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);
@@ -40496,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;
   }
 
 }
@@ -40515,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);
@@ -40526,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 {
   }
 
 }
@@ -40556,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;
   }
 
 }
@@ -40607,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);
   }
 
 }
@@ -40716,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();
@@ -40750,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();
@@ -40802,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
@@ -40846,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();
@@ -40872,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();
   }
 
 }
@@ -40931,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 {
@@ -40950,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 {
@@ -40961,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();
   }
 
@@ -40973,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();
   }
 
@@ -40987,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 {
@@ -41036,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
@@ -41060,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);
@@ -41080,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 {
@@ -41101,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 {
@@ -41152,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();
@@ -41199,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 {
@@ -41222,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);
   }
 
 }
@@ -41232,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
@@ -41271,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();
   }
 
@@ -41299,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;
   }
@@ -41317,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;
   }
@@ -41332,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";
   }
 
 }
@@ -41350,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();
@@ -41378,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";
   }
 
 }
@@ -41403,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> {
@@ -41437,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
@@ -41458,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);
@@ -41514,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
@@ -41547,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 {
@@ -41557,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();
@@ -41574,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;
   }
@@ -41666,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;
@@ -41698,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";
   }
 
 }
@@ -41711,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);
   }
 
 }
@@ -41722,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();
@@ -41758,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();
@@ -41800,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();
@@ -41809,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);
@@ -41849,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);
   }
 
@@ -41884,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();
@@ -41910,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";
   }
 
 }
@@ -41924,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();
@@ -41939,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();
@@ -41959,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 {
@@ -41977,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 {
@@ -41995,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
@@ -42030,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 {
@@ -42048,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
@@ -42058,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
@@ -42155,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);
@@ -42257,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;
   }
 
@@ -42269,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;
@@ -42287,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;
@@ -42298,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;
@@ -42329,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 {
@@ -42381,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;
@@ -42866,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 {
@@ -42905,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;
@@ -42913,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;
   }
 
 }
@@ -42935,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);
@@ -42950,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();
@@ -42962,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
@@ -42977,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);
@@ -43005,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();
@@ -43025,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
@@ -43064,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
@@ -43075,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();
@@ -43093,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
@@ -43112,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 {
@@ -43184,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...);
@@ -43196,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);
@@ -43209,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();
@@ -43217,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();
@@ -43228,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);
@@ -43244,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();
@@ -43267,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
@@ -43308,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
@@ -43341,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);
@@ -43356,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);
@@ -43416,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
@@ -43448,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);
@@ -43469,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);
@@ -43485,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);
@@ -43494,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);
@@ -43506,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();
@@ -43514,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
@@ -43534,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;
@@ -43608,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);
@@ -43617,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);
   }
 
@@ -43627,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();
@@ -43654,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);
@@ -43682,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);
@@ -43691,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);
@@ -43703,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
@@ -43801,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
@@ -43948,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;
   }
 
@@ -44142,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;
   }
@@ -44156,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);
@@ -44169,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);
@@ -44181,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;
   }
@@ -44191,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);
@@ -44257,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();
@@ -44349,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
@@ -44386,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 {
@@ -44448,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
@@ -44514,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);
@@ -44524,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
@@ -44537,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
   }
@@ -44564,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();
@@ -44591,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();
@@ -44604,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
@@ -44674,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();
@@ -44711,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;
@@ -44738,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();
@@ -44759,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
   }
@@ -44821,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
@@ -44840,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
@@ -44972,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
@@ -45027,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);
@@ -45059,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 {
@@ -45073,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;
   }
@@ -45086,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;
   }
@@ -45094,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>);
   }
@@ -45124,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
@@ -45174,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);
@@ -45240,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";
   }
 
 }
@@ -45290,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;
   }
 
 }
@@ -45377,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();
@@ -45388,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[]);
@@ -45404,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;
@@ -45420,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
@@ -45432,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
   }
 
@@ -45446,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();
   }
@@ -45492,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();
   }
@@ -45519,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
@@ -45537,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);
@@ -45558,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);
   }
 
@@ -45597,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 {
@@ -45620,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);
@@ -45634,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 {
@@ -45647,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);
@@ -45672,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
@@ -45733,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 {
@@ -45757,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
@@ -45815,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();
@@ -45858,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);
@@ -45878,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;
@@ -45890,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();
@@ -45915,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 {
@@ -45970,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);
@@ -45982,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();
@@ -46025,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
@@ -46069,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);
@@ -46092,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 {
@@ -46130,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
@@ -46188,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);
   }
 
 }
@@ -46225,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);
@@ -46239,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;
   }
 
 }
@@ -46415,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 {
@@ -46449,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 {
@@ -46469,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 {
@@ -46489,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);
@@ -46512,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);
   }
@@ -46544,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 {
@@ -46556,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 {
@@ -46585,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;
@@ -46602,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 {
@@ -46618,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);
   }
 
 }
@@ -46630,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
   }
 
@@ -46689,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
@@ -46716,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 {
@@ -46774,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);
@@ -46834,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();
@@ -46910,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();
@@ -46980,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);
@@ -46991,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
@@ -47055,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
@@ -47081,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 {
   }
 
 }
@@ -47258,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;
@@ -47278,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);
   }
 
 }
@@ -47335,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);
   }
 
@@ -47408,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 {
@@ -47438,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);
@@ -47448,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();
@@ -47465,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);
@@ -47486,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 {
@@ -47529,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);
   }
 
@@ -47539,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);
@@ -47551,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);
@@ -47563,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 {
@@ -47588,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);
@@ -47600,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<?>);
@@ -47641,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>);
@@ -47650,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);
   }
@@ -47678,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
@@ -47721,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();
   }
 
@@ -47735,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 {
@@ -47781,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);
   }
 
@@ -47899,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;
@@ -47931,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 {
@@ -47950,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
@@ -47976,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 {
@@ -48003,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 {
@@ -48044,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);
   }
 
@@ -48148,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();
@@ -48161,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;
@@ -48172,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 {
@@ -48260,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);
@@ -48276,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);
@@ -48357,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;
@@ -48390,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);
@@ -48404,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);
@@ -48415,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
@@ -48427,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);
   }
@@ -48443,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);
@@ -48452,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 {
@@ -48463,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);
@@ -48495,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);
@@ -48514,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();
@@ -48561,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();
@@ -48586,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();
@@ -48604,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();
   }
 
@@ -48636,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);
@@ -48649,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 {
@@ -48738,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();
@@ -48755,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();
@@ -48770,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
@@ -48829,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 {
@@ -48842,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);
@@ -48852,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;
@@ -48867,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 {
@@ -48886,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();
@@ -48905,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();
@@ -48937,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);
@@ -48946,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
@@ -48959,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
@@ -49249,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
@@ -49273,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 {
@@ -49286,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;
@@ -49317,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
@@ -49386,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
@@ -49451,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();
@@ -49536,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);
@@ -49560,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
@@ -49680,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
@@ -49706,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
@@ -49764,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 {
@@ -49791,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 {
@@ -49811,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;
@@ -49823,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 {
@@ -49899,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
@@ -49930,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();
@@ -49978,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);
@@ -49986,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);
@@ -49997,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();
@@ -50117,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();
@@ -50130,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();
@@ -50272,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);
@@ -50296,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);
@@ -50314,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);
@@ -50329,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);
@@ -50411,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);
@@ -50444,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);
@@ -50490,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);
@@ -50506,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);
@@ -50516,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
@@ -50557,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;
@@ -50635,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
@@ -50661,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
@@ -50690,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);
@@ -50717,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;
   }
@@ -50734,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 {
@@ -50815,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();
@@ -50846,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();
@@ -50859,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);
@@ -50952,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();
@@ -50962,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();
@@ -51012,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);
@@ -51026,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);
@@ -51045,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 {
@@ -51057,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 {
@@ -51078,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 {
@@ -51109,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 {
@@ -51191,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);
@@ -51207,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);
@@ -51239,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);
@@ -51251,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 {
@@ -51306,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);
@@ -51316,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();
@@ -51369,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();
@@ -51388,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();
@@ -51413,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);
@@ -51438,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);
@@ -51461,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);
@@ -51486,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
@@ -51494,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 {
@@ -51573,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);
@@ -51581,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 {
@@ -51638,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
@@ -51659,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
@@ -51681,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
@@ -51697,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
@@ -51737,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;
   }
 
 }
@@ -51783,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();
@@ -51802,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
@@ -51813,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
@@ -51853,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);
@@ -51873,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();
@@ -51965,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);
@@ -51977,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);
@@ -52000,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
@@ -52062,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
@@ -52075,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;
@@ -52134,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);
@@ -52152,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
@@ -52173,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();
@@ -52200,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);
@@ -52220,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
   }
 
@@ -52241,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();
@@ -52260,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();
@@ -52288,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);
   }
 
 }
@@ -52327,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();
@@ -52352,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);
@@ -52381,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 {
@@ -52404,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);
@@ -52481,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 {
@@ -52496,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();
@@ -52561,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
@@ -52593,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
@@ -52636,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();
@@ -52663,28 +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[]);
+    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 {
@@ -52701,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();
   }
 
 }
@@ -52714,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();
@@ -52729,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;
   }
@@ -52772,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();
@@ -52794,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);
@@ -52803,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;
@@ -52826,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 {
@@ -52851,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 {
@@ -52883,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
@@ -52925,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();
@@ -52933,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);
@@ -53053,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();
@@ -53097,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);
   }
 
@@ -53111,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 {
@@ -53122,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);
   }
 
 }
@@ -53181,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;
@@ -53231,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
@@ -53312,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 {
@@ -53393,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;
@@ -53445,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
@@ -53500,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
@@ -53566,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();
@@ -53606,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);
@@ -53625,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);
   }
 
 }
@@ -53670,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;
   }
@@ -53687,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);
@@ -53731,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;
   }
@@ -53755,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;
@@ -53782,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 {
@@ -53856,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);
@@ -53896,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 {
@@ -53924,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
@@ -53949,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
@@ -54041,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 {
@@ -54076,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();
@@ -54122,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();
@@ -54147,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);
@@ -54197,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
@@ -54219,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
@@ -54230,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;
@@ -54275,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 {
@@ -54298,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();
@@ -54411,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
@@ -54435,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
@@ -54499,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 {
@@ -54522,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();
@@ -54553,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();
@@ -54576,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);
@@ -54599,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);
@@ -54611,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
@@ -54628,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 {
@@ -54657,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);
@@ -54688,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 {
@@ -54712,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();
   }
 
@@ -54731,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
   }
@@ -54757,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
@@ -54791,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);
@@ -54835,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);
@@ -54849,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 {
@@ -54908,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();
@@ -54920,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();
@@ -54931,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);
@@ -54947,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 {
@@ -54974,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);
   }
 
@@ -54996,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);
@@ -55004,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 {
@@ -55052,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 {
@@ -55064,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 {
@@ -55102,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
   }
 
@@ -55152,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);
@@ -55170,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);
@@ -55181,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);
   }
 
@@ -55259,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 {
@@ -55327,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);
@@ -55463,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 {
@@ -55481,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);
@@ -55490,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();
@@ -55517,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);
@@ -55532,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 {
@@ -55559,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);
@@ -55570,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();
@@ -55588,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);
@@ -55605,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;
@@ -55632,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);
@@ -55675,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);
@@ -55727,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);
@@ -55747,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();
@@ -55770,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);
@@ -55784,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
@@ -55815,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 {
@@ -55841,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 {
@@ -55860,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 {
@@ -55882,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);
@@ -55951,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 {
@@ -55981,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();
@@ -56006,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();
@@ -56020,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);
@@ -56037,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 {
@@ -56096,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 {
@@ -56120,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);
   }
 
@@ -56135,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 {
@@ -56156,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);
@@ -56204,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 {
@@ -56297,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);
@@ -56380,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();
@@ -56399,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 {
@@ -56435,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();
@@ -56467,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);
@@ -56532,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 {
@@ -56589,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);
@@ -56623,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 {
@@ -56660,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);
   }
 
@@ -56701,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);
   }
 
@@ -56756,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();
@@ -56808,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);
@@ -56869,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();
@@ -56917,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);
@@ -56946,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);
@@ -56993,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);
@@ -57002,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 {
@@ -57063,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 {
@@ -57091,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
@@ -57109,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 {
@@ -57126,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();
@@ -57139,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);
@@ -57202,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 {
@@ -57233,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();
@@ -57259,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();
@@ -57285,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 {
@@ -57339,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();
   }
 
 }
@@ -57354,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
@@ -57386,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
@@ -57421,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
@@ -57455,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
@@ -57474,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
@@ -57487,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
@@ -57505,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
@@ -57589,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
@@ -57615,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
@@ -57625,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
@@ -57644,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);
   }
 
 }
@@ -57721,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;
@@ -57762,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;
@@ -57772,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;
   }
 
 }
@@ -57829,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);
   }
 
 }
@@ -57877,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;
@@ -57891,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;
   }
@@ -57904,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 {
@@ -57919,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;
@@ -57934,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;
   }
@@ -57961,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();
@@ -57971,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;
@@ -57979,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 {
@@ -58028,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();
@@ -58116,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);
@@ -58133,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;
   }
 
@@ -58151,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;
@@ -58167,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);
@@ -58183,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 {
@@ -58233,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 {
@@ -58303,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 {
@@ -58338,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
@@ -58470,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);
@@ -58503,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;
   }
 
@@ -58518,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;
@@ -58532,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;
   }
 
@@ -58544,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);
@@ -58582,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);
@@ -58594,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);
@@ -58626,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);
@@ -58638,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;
@@ -58669,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;
@@ -58687,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;
@@ -58701,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;
@@ -58724,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 {
@@ -58733,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);
@@ -58769,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;
   }
@@ -58794,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;
   }
 
 }
@@ -58852,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);
@@ -58997,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);
@@ -59008,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);
@@ -59026,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);
@@ -59034,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
@@ -59103,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;
@@ -59311,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;
@@ -59342,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;
@@ -59453,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();
@@ -59614,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;
@@ -59630,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);
@@ -59697,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;
@@ -59713,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();
@@ -59801,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);
@@ -59812,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();
@@ -59877,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);
@@ -59888,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 {
@@ -59985,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 {
@@ -60030,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;
@@ -60050,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);
   }
@@ -60080,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();
@@ -60093,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);
@@ -60124,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;
@@ -60134,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);
@@ -60178,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();
   }
 
@@ -60358,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;
@@ -60583,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();
@@ -60616,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;
@@ -60647,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 {
@@ -60656,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;
@@ -60797,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();
   }
 
 }
@@ -60846,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
@@ -60892,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
@@ -60942,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();
   }
@@ -60990,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>);
   }
 
@@ -61006,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> {
@@ -61016,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>);
   }
@@ -61032,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();
@@ -61040,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 {
@@ -61160,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 {
@@ -61209,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
@@ -61225,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);
@@ -61352,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);
@@ -61372,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;
@@ -61437,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;
@@ -61458,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();
   }
 
@@ -61493,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 {
@@ -61551,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 {
@@ -61571,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 {
@@ -61612,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;
@@ -61622,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();
   }
 
@@ -61681,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
@@ -61721,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
@@ -61731,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
   }
@@ -61749,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();
@@ -61758,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();
@@ -61784,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();
@@ -61805,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();
@@ -61816,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 {
@@ -61826,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();
@@ -61867,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;
@@ -61918,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;
@@ -61946,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();
@@ -61983,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();
@@ -62000,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;
@@ -62017,7 +61880,7 @@
   }
 
   public class SocketException extends java.io.IOException {
-    ctor public SocketException(java.lang.String);
+    ctor public SocketException(String);
     ctor public SocketException();
   }
 
@@ -62027,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;
@@ -62049,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
@@ -62078,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;
   }
@@ -62109,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;
@@ -62257,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);
   }
 
 }
@@ -62301,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();
@@ -62328,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();
@@ -62360,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 {
@@ -62390,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();
@@ -62414,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();
@@ -62449,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();
@@ -62473,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();
@@ -62501,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();
@@ -62535,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();
@@ -62575,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 {
@@ -62605,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;
@@ -62636,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 {
@@ -62672,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 {
@@ -62689,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 {
@@ -62754,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 {
@@ -62782,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 {
@@ -62797,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 {
@@ -62841,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();
   }
@@ -62855,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();
@@ -62960,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 {
@@ -62983,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;
@@ -62992,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 {
@@ -63011,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 {
@@ -63043,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 {
@@ -63079,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();
@@ -63087,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();
   }
@@ -63098,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;
@@ -63121,7 +62981,7 @@
   }
 
   public class CoderMalfunctionError extends java.lang.Error {
-    ctor public CoderMalfunctionError(java.lang.Exception);
+    ctor public CoderMalfunctionError(Exception);
   }
 
   public class CoderResult {
@@ -63145,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 {
@@ -63169,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();
   }
 
 }
@@ -63179,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();
   }
 
@@ -63188,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 {
@@ -63216,7 +63074,7 @@
     ctor public ClosedWatchServiceException();
   }
 
-  public abstract interface CopyOption {
+  public interface CopyOption {
   }
 
   public final class DirectoryIteratorException extends java.util.ConcurrentModificationException {
@@ -63225,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();
@@ -63271,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 {
@@ -63330,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;
@@ -63363,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;
@@ -63385,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;
@@ -63496,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;
@@ -63526,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;
   }
 
 }
@@ -63583,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;
@@ -63614,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);
@@ -63690,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;
@@ -63721,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();
   }
 
 }
@@ -63760,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;
@@ -63773,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;
   }
 
 }
@@ -63800,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();
   }
 
@@ -63816,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);
@@ -63844,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 {
@@ -63916,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;
@@ -63933,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 {
@@ -63954,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;
   }
@@ -64064,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 {
@@ -64082,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);
@@ -64103,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 {
@@ -64160,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 {
@@ -64191,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 {
@@ -64208,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();
@@ -64271,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();
   }
@@ -64316,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 {
@@ -64342,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();
@@ -64379,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);
   }
 
@@ -64443,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 {
@@ -64465,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;
@@ -64513,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;
@@ -64540,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 {
@@ -64562,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);
   }
 
@@ -64584,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 {
@@ -64627,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 {
   }
 
 }
@@ -64641,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;
@@ -64670,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 {
@@ -64720,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;
@@ -64744,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;
@@ -64766,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 {
@@ -64779,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 {
@@ -64815,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 {
@@ -64872,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;
@@ -64881,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();
@@ -64903,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 {
@@ -64939,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();
@@ -64956,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();
@@ -64978,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;
@@ -65002,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();
@@ -65058,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;
   }
 
@@ -65078,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();
@@ -65104,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();
@@ -65116,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();
@@ -65127,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);
@@ -65138,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);
@@ -65148,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 {
@@ -65171,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;
@@ -65183,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
   }
 
@@ -65272,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 {
@@ -65298,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 {
@@ -65319,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 {
@@ -65362,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;
@@ -65392,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();
@@ -65456,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
@@ -65701,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();
@@ -65709,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
@@ -65946,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
@@ -66008,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
@@ -66273,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;
@@ -66319,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
@@ -66629,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);
@@ -66650,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 {
@@ -66692,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;
   }
 
 }
@@ -66702,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();
@@ -66759,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
@@ -66769,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();
@@ -66789,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 {
@@ -66833,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
@@ -66872,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
@@ -66920,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);
@@ -67058,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;
@@ -67112,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();
   }
 
@@ -67180,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();
@@ -67219,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);
   }
 
 }
@@ -67243,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;
@@ -67268,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);
@@ -67299,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);
@@ -67319,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);
@@ -67342,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);
@@ -67389,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);
@@ -67409,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);
@@ -67447,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);
@@ -67477,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);
@@ -67507,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);
@@ -67531,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);
@@ -67546,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;
@@ -67562,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);
@@ -67581,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();
@@ -67629,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);
@@ -67667,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);
@@ -67696,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);
@@ -67741,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);
@@ -67754,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();
@@ -67780,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);
@@ -67792,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();
@@ -67820,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);
@@ -67836,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);
@@ -67866,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();
@@ -67901,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);
@@ -67942,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);
@@ -67969,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<?>);
@@ -67991,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<?>);
@@ -68034,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);
   }
 
@@ -68103,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;
@@ -68131,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;
   }
 
@@ -68156,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;
   }
@@ -68190,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;
@@ -68219,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);
   }
@@ -68226,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;
@@ -68246,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;
@@ -68274,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;
   }
@@ -68299,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;
@@ -68327,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;
   }
@@ -68345,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();
@@ -68357,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();
@@ -68401,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);
@@ -68421,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);
@@ -68436,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 {
@@ -68457,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;
@@ -68484,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;
@@ -68502,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);
@@ -68514,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;
@@ -68548,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;
@@ -68590,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 {
@@ -68630,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 {
@@ -68662,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 {
@@ -68717,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();
@@ -68746,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;
@@ -68774,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);
@@ -68918,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);
@@ -68933,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);
@@ -68942,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[]);
@@ -68953,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);
@@ -68970,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[]);
@@ -68980,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[]);
@@ -69009,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[]);
@@ -69029,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 {
@@ -69072,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);
@@ -69082,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);
   }
@@ -69096,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);
@@ -69124,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);
@@ -69173,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
@@ -69237,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>);
@@ -69370,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();
   }
 
@@ -69466,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 {
@@ -69512,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 {
@@ -69535,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;
   }
@@ -69594,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 {
@@ -69665,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();
   }
 
@@ -69674,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 {
@@ -69690,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 {
@@ -69712,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;
@@ -69904,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;
   }
@@ -69927,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 {
@@ -70078,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 {
@@ -70089,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 {
@@ -70100,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>);
@@ -70145,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 {
@@ -70205,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);
@@ -70241,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;
@@ -70258,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();
@@ -70296,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);
@@ -70309,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();
@@ -70317,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);
@@ -70364,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
@@ -70401,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 {
@@ -70440,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);
@@ -70459,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();
@@ -70515,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();
@@ -70577,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);
@@ -70597,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();
@@ -70660,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[]);
@@ -70676,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();
   }
 
 }
@@ -70757,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>);
@@ -70782,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);
@@ -71019,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();
@@ -71035,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>);
@@ -71114,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>);
@@ -71165,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();
@@ -71183,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);
@@ -71192,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;
@@ -71202,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>);
@@ -71219,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> {
@@ -71231,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();
@@ -71299,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();
@@ -71324,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();
@@ -71385,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;
@@ -71408,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>);
@@ -71445,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>);
@@ -71472,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>);
@@ -71518,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>);
@@ -71538,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();
@@ -71556,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 {
@@ -71587,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);
@@ -71623,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>);
@@ -71640,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 {
@@ -71660,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();
@@ -71684,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);
@@ -71697,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);
@@ -71727,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;
@@ -71740,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;
   }
 
 }
@@ -71828,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);
@@ -71896,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);
@@ -71953,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);
@@ -72026,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 {
@@ -72038,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();
@@ -72050,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);
@@ -72085,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();
@@ -72097,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);
@@ -72124,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();
@@ -72185,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();
@@ -72195,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();
@@ -72259,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();
   }
 
@@ -72470,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;
@@ -72515,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;
@@ -72565,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
@@ -72619,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 {
@@ -72719,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";
   }
 
 }
@@ -72779,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
@@ -72795,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 {
@@ -72980,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);
   }
 
 }
@@ -73014,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 {
@@ -73081,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
@@ -73222,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 {
@@ -73544,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 {
@@ -73597,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;
   }
@@ -73629,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;
   }
 
@@ -73662,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;
   }
@@ -73677,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();
@@ -73688,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);
@@ -73747,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
@@ -73819,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
@@ -73868,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
@@ -73922,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;
@@ -73939,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();
@@ -73959,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;
@@ -74001,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;
@@ -74014,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;
@@ -74045,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 {
@@ -74060,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;
@@ -74085,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;
@@ -74114,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;
@@ -74136,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;
@@ -74148,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 {
@@ -74158,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;
   }
@@ -74184,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
   }
 
@@ -74281,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;
@@ -74309,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 {
@@ -74338,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
@@ -74399,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
@@ -74450,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
   }
 
@@ -74476,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
@@ -74842,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
@@ -75040,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
@@ -75080,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
@@ -75238,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();
@@ -75256,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;
@@ -75273,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();
@@ -75299,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;
@@ -75328,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 {
@@ -75351,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();
@@ -75385,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);
@@ -75433,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;
@@ -75443,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;
@@ -75453,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);
@@ -75493,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 {
@@ -75511,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);
@@ -75530,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);
@@ -75614,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;
@@ -75649,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();
   }
 
 }
@@ -75681,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);
   }
 
@@ -75711,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();
@@ -75731,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();
   }
 
@@ -75759,7 +75504,7 @@
 
   public class LoginException extends java.security.GeneralSecurityException {
     ctor public LoginException();
-    ctor public LoginException(java.lang.String);
+    ctor public LoginException(String);
   }
 
 }
@@ -75767,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";
   }
 
 }
@@ -75788,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 {
@@ -75828,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();
@@ -75839,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 {
@@ -75853,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 {
@@ -76048,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);
   }
 
 }
@@ -76058,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";
   }
 
 }
@@ -76078,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 {
@@ -76128,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);
@@ -76151,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 {
@@ -76162,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();
@@ -76187,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();
@@ -76220,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);
   }
 
 }
@@ -76258,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();
@@ -76269,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();
@@ -76281,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);
@@ -76296,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);
@@ -76351,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 {
@@ -76399,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";
   }
 
 }
@@ -76507,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 {
@@ -76519,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 {
@@ -76536,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);
   }
 
 }
@@ -76561,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";
   }
 
 }
@@ -76606,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 {
@@ -76639,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;
@@ -76655,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);
   }
 
@@ -76670,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;
@@ -76695,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);
   }
 
 }
@@ -76891,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);
@@ -76915,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 {
@@ -76991,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
@@ -77093,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
@@ -77283,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
@@ -77329,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
@@ -77392,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;
   }
 
@@ -77737,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 {
@@ -77768,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 {
@@ -77800,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;
   }
 
@@ -77838,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;
   }
 
 }
@@ -77992,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 eba32cd..ce0ef38 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -1,200 +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_ATTENTION_SERVICE = "android.permission.BIND_ATTENTION_SERVICE";
-    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 {
@@ -251,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);
   }
 
 }
@@ -261,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
@@ -362,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;
@@ -373,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;
@@ -409,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);
@@ -420,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;
@@ -429,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 {
@@ -454,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
   }
 
@@ -473,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);
@@ -498,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();
@@ -548,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 {
@@ -567,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
@@ -578,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);
   }
 
 }
@@ -588,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
@@ -666,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
@@ -698,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
@@ -770,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 {
@@ -790,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);
@@ -804,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);
@@ -814,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
@@ -831,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;
@@ -852,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);
   }
 
 }
@@ -888,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 {
@@ -938,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);
   }
 
 }
@@ -947,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);
   }
 
 }
@@ -956,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 {
@@ -983,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
@@ -1020,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 {
@@ -1035,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();
   }
 
 }
@@ -1068,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
@@ -1077,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
@@ -1106,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
   }
@@ -1132,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
   }
@@ -1166,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);
   }
 
@@ -1201,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 {
@@ -1313,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);
   }
 
 }
@@ -1331,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 startActivity(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();
@@ -1393,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
@@ -1539,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 {
@@ -1568,7 +1569,7 @@
     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;
   }
 
@@ -1577,7 +1578,7 @@
   }
 
   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 {
@@ -1596,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);
   }
 
 }
@@ -1609,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
@@ -1618,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);
@@ -1628,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;
   }
 
 }
@@ -1643,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 {
@@ -1665,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();
   }
 
 }
@@ -1680,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
   }
@@ -1696,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
@@ -1707,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
@@ -1742,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;
   }
@@ -1759,35 +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 setAppSaturationLevel(java.lang.String, int);
-    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);
   }
 
 }
@@ -1798,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
@@ -1824,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
@@ -1861,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
@@ -1896,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 {
@@ -1912,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();
@@ -1957,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 {
@@ -2019,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 {
@@ -2055,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);
   }
 
 }
@@ -2091,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 {
@@ -2116,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();
@@ -2124,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
@@ -2167,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
@@ -2214,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> {
@@ -2265,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);
   }
 
@@ -2310,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 {
@@ -2358,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 {
@@ -2419,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
@@ -2434,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
@@ -2492,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
@@ -2587,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 {
@@ -2647,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();
@@ -2689,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 {
@@ -2744,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);
   }
 
 }
@@ -2802,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();
@@ -2817,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 {
@@ -2864,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;
@@ -2876,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);
   }
 
@@ -2905,8 +2906,8 @@
     method public int getConstellationType();
     method public float getExcessPathLengthMeters();
     method public float getExcessPathLengthUncertaintyMeters();
-    method public float getProbSatIsLos();
-    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();
@@ -2928,7 +2929,7 @@
     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(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 setSingleSatCorrectionFlags(int);
@@ -3101,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
@@ -3110,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();
@@ -3146,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;
@@ -3154,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 {
@@ -3166,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();
@@ -3211,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);
@@ -3240,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);
   }
@@ -3248,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;
   }
@@ -3263,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
@@ -3286,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();
@@ -3318,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 {
@@ -3346,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[]);
   }
 
 }
@@ -3374,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;
   }
@@ -3387,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
@@ -3413,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);
@@ -3421,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;
   }
 
 }
@@ -3447,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);
   }
 
 }
@@ -3481,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 {
@@ -3538,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();
@@ -3601,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);
@@ -3611,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 {
@@ -3710,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);
   }
 
 }
@@ -3724,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);
   }
@@ -3767,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 {
@@ -3817,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 {
@@ -3825,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);
   }
@@ -3858,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 {
@@ -3890,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;
@@ -3911,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;
   }
 
 }
@@ -3951,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 {
@@ -4167,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, java.util.concurrent.Executor, android.net.wifi.EasyConnectStatusCallback);
-    method public void startEasyConnectAsEnrolleeInitiator(java.lang.String, java.util.concurrent.Executor, 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 {
@@ -4252,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
@@ -4273,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
@@ -4286,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 {
@@ -4309,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 {
@@ -4335,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;
@@ -4354,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;
   }
 
 }
@@ -4374,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[]);
   }
 
 }
@@ -4391,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;
@@ -4443,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);
@@ -4485,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);
   }
 
 }
@@ -4494,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);
   }
 
 }
@@ -4514,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 {
@@ -4523,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 {
@@ -4557,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;
   }
 
@@ -4591,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);
@@ -4609,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);
@@ -4641,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();
@@ -4663,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 {
@@ -4713,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();
@@ -4724,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
@@ -4740,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 {
@@ -4769,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);
@@ -4784,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
@@ -4809,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();
@@ -4817,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 {
@@ -4859,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);
@@ -4869,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
@@ -4898,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 {
@@ -4912,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;
@@ -4925,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
   }
 
 }
@@ -4937,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);
@@ -4981,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;
   }
@@ -4993,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();
   }
 
 }
@@ -5016,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();
   }
 
 }
@@ -5039,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;
   }
@@ -5049,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;
@@ -5066,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";
   }
 
 }
@@ -5075,57 +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_AUTOFILL = "autofill";
-    field public static final java.lang.String NAMESPACE_CONTENT_CAPTURE = "content_capture";
-    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 {
@@ -5138,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;
   }
@@ -5182,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";
   }
 
 }
@@ -5334,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";
   }
 
 }
@@ -5347,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);
   }
 
 }
@@ -5363,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;
@@ -5388,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
@@ -5423,59 +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 deprecated java.security.Key generateKey(java.lang.String) throws android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.LockScreenRequiredException;
-    method public java.security.Key generateKey(java.lang.String, byte[]) 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 deprecated java.security.Key importKey(java.lang.String, byte[]) throws android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.LockScreenRequiredException;
-    method public java.security.Key importKey(java.lang.String, byte[], 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 public byte[] getMetadata();
+    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 public android.security.keystore.recovery.WrappedApplicationKey.Builder setMetadata(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[]);
   }
 
 }
@@ -5484,16 +5485,16 @@
 
   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>);
   }
 
 }
@@ -5504,13 +5505,13 @@
     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, android.service.attention.AttentionService.AttentionCallback);
+    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 java.lang.String SERVICE_INTERFACE = "android.service.attention.AttentionService";
+    field public static final String SERVICE_INTERFACE = "android.service.attention.AttentionService";
   }
 
   public static final class AttentionService.AttentionCallback {
@@ -5524,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";
   }
 
 }
@@ -5539,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();
   }
 
@@ -5570,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
@@ -5593,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);
   }
 
 }
@@ -5605,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 {
@@ -5642,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;
   }
 
@@ -5652,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";
   }
 
 }
@@ -5676,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;
@@ -5699,99 +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_CARD_ID = "android.service.euicc.extra.RESOLUTION_CARD_ID";
-    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;
@@ -5802,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
   }
@@ -5873,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;
   }
@@ -5888,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);
   }
 
 }
@@ -5900,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 {
   }
 
 }
@@ -5921,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);
   }
 
 }
@@ -5933,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 {
@@ -5963,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 {
@@ -5996,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";
   }
 
 }
@@ -6007,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);
   }
 
 }
@@ -6032,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>);
@@ -6048,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";
   }
 
 }
@@ -6071,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();
@@ -6127,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();
@@ -6216,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 {
@@ -6249,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 {
@@ -6282,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;
@@ -6307,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
@@ -6376,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);
@@ -6577,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();
@@ -6622,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 {
@@ -6643,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
@@ -6656,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;
   }
@@ -6676,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
   }
 
@@ -6701,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();
@@ -6809,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
@@ -6820,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
@@ -6842,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();
   }
@@ -6851,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
@@ -6867,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 {
@@ -6893,88 +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 boolean enableModemForSlot(int, boolean);
-    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
@@ -7017,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);
@@ -7040,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();
@@ -7057,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);
   }
 
@@ -7066,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();
@@ -7110,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
@@ -7119,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 {
@@ -7145,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 {
@@ -7161,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 {
@@ -7169,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
@@ -7210,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
@@ -7237,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
@@ -7261,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
@@ -7279,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 {
   }
 
 }
@@ -7287,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();
@@ -7315,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);
@@ -7336,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);
@@ -7366,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
@@ -7418,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);
@@ -7427,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();
@@ -7473,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
@@ -7512,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
@@ -7692,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 {
@@ -7716,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();
@@ -7778,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);
@@ -7812,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 {
@@ -7871,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;
   }
 
@@ -7905,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);
@@ -7918,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);
   }
 
 }
@@ -7937,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();
@@ -7947,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();
   }
 
@@ -7978,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 {
@@ -8033,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);
@@ -8068,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
@@ -8084,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
@@ -8142,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
@@ -8165,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();
@@ -8173,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);
@@ -8188,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 {
@@ -8210,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 {
@@ -8229,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 {
@@ -8256,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";
   }
 
 }
@@ -8299,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 {
   }
 
 }
@@ -8321,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();
   }
 
 }
@@ -8329,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
   }
@@ -8343,11 +8352,11 @@
   public final class ContentCaptureEvent implements android.os.Parcelable {
     method public int describeContents();
     method public long getEventTime();
-    method public android.view.autofill.AutofillId getId();
-    method public java.util.List<android.view.autofill.AutofillId> getIds();
-    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
@@ -8356,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();
   }
 
 }
@@ -8376,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);
   }
@@ -8385,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();
@@ -8395,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);
   }
@@ -8419,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);
@@ -8431,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 {
@@ -8439,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 {
@@ -8472,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);
   }
 
@@ -8495,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 {
@@ -8504,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);
   }
 
@@ -8538,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
@@ -8573,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 0853182..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,18 +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 long getColorLong();
-    method public long getShadowLayerColorLong();
-    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);
   }
 
 }
@@ -535,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);
   }
 
 }
@@ -543,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
@@ -575,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;
   }
@@ -592,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);
   }
 
 }
@@ -646,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);
@@ -657,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);
@@ -697,7 +698,7 @@
   }
 
   public class LocationManager {
-    method public java.lang.String[] getBackgroundThrottlingWhitelist();
+    method public String[] getBackgroundThrottlingWhitelist();
   }
 
 }
@@ -705,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 {
@@ -716,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 {
@@ -742,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);
   }
 
 }
@@ -771,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[]);
   }
 
 }
@@ -800,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 {
@@ -809,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 {
@@ -823,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;
   }
 
@@ -847,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);
@@ -865,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);
@@ -897,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();
@@ -919,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 {
@@ -974,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();
@@ -985,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
   }
@@ -1003,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 {
@@ -1027,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 {
@@ -1062,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
@@ -1121,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();
   }
 
@@ -1169,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);
@@ -1196,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);
   }
 
@@ -1212,7 +1214,7 @@
   }
 
   public final class StorageVolume implements android.os.Parcelable {
-    method public java.lang.String getPath();
+    method public String getPath();
   }
 
 }
@@ -1227,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>>);
   }
 
 }
@@ -1243,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);
   }
 
 }
@@ -1263,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";
   }
 
 }
@@ -1314,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();
   }
 
@@ -1323,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 {
@@ -1352,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 {
@@ -1394,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);
   }
 
 }
@@ -1448,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();
   }
 
@@ -1479,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
@@ -1502,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);
   }
 
 }
@@ -1512,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
   }
@@ -1590,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;
   }
@@ -1613,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 {
@@ -1622,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";
   }
 
 }
@@ -1633,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 {
@@ -1659,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
   }
 
@@ -1669,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 {
@@ -1700,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 {
@@ -1727,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";
   }
 
 }
@@ -1760,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);
   }
 
 }
@@ -1776,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);
   }
 
@@ -1787,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);
@@ -1828,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();
@@ -1841,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
@@ -1853,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
@@ -1959,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
@@ -1979,7 +1989,7 @@
   }
 
   public class WireTypeMismatchException extends android.util.proto.ProtoParseException {
-    ctor public WireTypeMismatchException(java.lang.String);
+    ctor public WireTypeMismatchException(String);
   }
 
 }
@@ -1992,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
   }
@@ -2004,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();
   }
 
@@ -2026,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);
@@ -2051,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);
@@ -2060,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;
   }
 
 }
@@ -2069,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 {
@@ -2085,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 {
@@ -2107,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 {
@@ -2126,21 +2136,31 @@
 
 package android.view.inspector {
 
-  public abstract class InspectableNodeName implements java.lang.annotation.Annotation {
+  @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();
   }
 
-  public abstract class InspectableProperty implements java.lang.annotation.Annotation {
+  @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;
   }
 
-  public static abstract class InspectableProperty.EnumMap implements java.lang.annotation.Annotation {
+  @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();
   }
 
-  public static abstract class InspectableProperty.FlagMap implements java.lang.annotation.Annotation {
+  @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 static final class InspectableProperty.ValueType extends java.lang.Enum {
-    method public static android.view.inspector.InspectableProperty.ValueType valueOf(java.lang.String);
-    method public static final android.view.inspector.InspectableProperty.ValueType[] values();
+  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;
@@ -2153,7 +2173,7 @@
 
 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();
   }
 
@@ -2167,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 {
@@ -2190,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();
   }
 
@@ -2205,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/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/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/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/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/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