Namespace Android

Type Changed: Android.Manifest

Type Changed: Android.Manifest.Permission

Added fields:

public static const string AnswerPhoneCalls = "android.permission.ANSWER_PHONE_CALLS";
    public static const string BindAutofillService = "android.permission.BIND_AUTOFILL_SERVICE";
    public static const string BindVisualVoicemailService = "android.permission.BIND_VISUAL_VOICEMAIL_SERVICE";
    public static const string InstantAppForegroundService = "android.permission.INSTANT_APP_FOREGROUND_SERVICE";
    public static const string ManageOwnCalls = "android.permission.MANAGE_OWN_CALLS";
    public static const string ReadPhoneNumbers = "android.permission.READ_PHONE_NUMBERS";
    public static const string RequestCompanionRunInBackground = "android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND";
    public static const string RequestCompanionUseDataInBackground = "android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND";
    public static const string RequestDeletePackages = "android.permission.REQUEST_DELETE_PACKAGES";

Type Changed: Android.Resource

Type Changed: Android.Resource.Attribute

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const int CanRequestEnhancedWebAccessibility;

Added fields:

public static const int AlphabeticModifiers;
    public static const int AppCategory;
    public static const int AutoSizeMaxTextSize;
    public static const int AutoSizeMinTextSize;
    public static const int AutoSizePresetSizes;
    public static const int AutoSizeStepGranularity;
    public static const int AutoSizeTextType;
    public static const int AutofillHints;
    public static const int AutofilledHighlight;
    public static const int CanRequestFingerprintGestures;
    public static const int CertDigest;
    public static const int ColorError;
    public static const int ColorMode;
    public static const int DefaultFocusHighlightEnabled;
    public static const int FocusedByDefault;
    public static const int Font;
    public static const int FontProviderAuthority;
    public static const int FontProviderCerts;
    public static const int FontProviderPackage;
    public static const int FontProviderQuery;
    public static const int FontStyle;
    public static const int FontWeight;
    public static const int IconSpaceReserved;
    public static const int IconTint;
    public static const int IconTintMode;
    public static const int ImportantForAutofill;
    public static const int IsFeatureSplit;
    public static const int IsStatic;
    public static const int IsolatedSplits;
    public static const int JustificationMode;
    public static const int KeyboardNavigationCluster;
    public static const int LayoutMarginHorizontal;
    public static const int LayoutMarginVertical;
    public static const int MaxAspectRatio;
    public static const int Min;
    public static const int NextClusterForward;
    public static const int NumericModifiers;
    public static const int PaddingHorizontal;
    public static const int PaddingVertical;
    public static const int PersistentWhenFeatureAvailable;
    public static const int PrimaryContentAlpha;
    public static const int RecreateOnConfigChanges;
    public static const int RecycleEnabled;
    public static const int RequiredFeature;
    public static const int RequiredNotFeature;
    public static const int RotationAnimation;
    public static const int SecondaryContentAlpha;
    public static const int SingleLineTitle;
    public static const int SplitName;
    public static const int TargetProcesses;
    public static const int TargetSandboxVersion;
    public static const int TooltipText;
    public static const int VisibleToInstantApps;
    public static const int WindowSplashscreenContent;

Type Changed: Android.Resource.Id

Added fields:

public static const int AccessibilityActionMoveWindow;
    public static const int Autofill;
    public static const int TextAssist;

Type Changed: Android.Resource.String

Added field:

public static const int PasteAsPlainText;

Namespace Android.AccessibilityServices

Type Changed: Android.AccessibilityServices.AccessibilityService

Added properties:

public AccessibilityButtonController AccessibilityButtonController { get; }
    public FingerprintGestureController FingerprintGestureController { get; }

Type Changed: Android.AccessibilityServices.AccessibilityServiceCapabilities

Added value:

    CanRequestFingerprintGestures = 64,

Type Changed: Android.AccessibilityServices.AccessibilityServiceFlags

Added values:

    EnableAccessibilityVolume = 128,
    RequestAccessibilityButton = 256,
    RequestFingerprintGestures = 512,

Type Changed: Android.AccessibilityServices.AccessibilityServiceInfo

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.AccessibilityServices.AccessibilityServiceCapabilities enum directly instead of this field.")]
    public static const AccessibilityServiceCapabilities CapabilityCanRequestFingerprintGestures;

    [Obsolete ("This constant will be removed in the future version. Use Android.AccessibilityServices.AccessibilityServiceFlags enum directly instead of this field.")]
    public static const AccessibilityServiceFlags FlagEnableAccessibilityVolume;

    [Obsolete ("This constant will be removed in the future version. Use Android.AccessibilityServices.AccessibilityServiceFlags enum directly instead of this field.")]
    public static const AccessibilityServiceFlags FlagRequestAccessibilityButton;

    [Obsolete ("This constant will be removed in the future version. Use Android.AccessibilityServices.AccessibilityServiceFlags enum directly instead of this field.")]
    public static const AccessibilityServiceFlags FlagRequestFingerprintGestures;

Added methods:

public string LoadSummary (Android.Content.PM.PackageManager packageManager);
    public virtual Java.Lang.ICharSequence LoadSummaryFormatted (Android.Content.PM.PackageManager packageManager);

Type Changed: Android.AccessibilityServices.GestureDescription

Type Changed: Android.AccessibilityServices.GestureDescription.StrokeDescription

Added constructor:

public GestureDescription (Android.Graphics.Path path, long startTime, long duration, bool willContinue);

Added methods:

public virtual GestureDescription.StrokeDescription ContinueStroke (Android.Graphics.Path path, long startTime, long duration, bool willContinue);
    public virtual bool WillContinue ();

New Type Android.AccessibilityServices.AccessibilityButtonController

public sealed class AccessibilityButtonController : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public bool IsAccessibilityButtonAvailable { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public void RegisterAccessibilityButtonCallback (AccessibilityButtonController.AccessibilityButtonCallback callback);
    public void RegisterAccessibilityButtonCallback (AccessibilityButtonController.AccessibilityButtonCallback callback, Android.OS.Handler handler);
    public void UnregisterAccessibilityButtonCallback (AccessibilityButtonController.AccessibilityButtonCallback callback);

    // inner types
    public abstract class AccessibilityButtonCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public AccessibilityButtonController ();
        protected AccessibilityButtonController (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual void OnAvailabilityChanged (AccessibilityButtonController controller, bool available);
        public virtual void OnClicked (AccessibilityButtonController controller);
    }
}

New Type Android.AccessibilityServices.FingerprintGestureController

public sealed class FingerprintGestureController : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public bool IsGestureDetectionAvailable { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public void RegisterFingerprintGestureCallback (FingerprintGestureController.FingerprintGestureCallback callback, Android.OS.Handler handler);
    public void UnregisterFingerprintGestureCallback (FingerprintGestureController.FingerprintGestureCallback callback);

    // inner types
    public abstract class FingerprintGestureCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public FingerprintGestureController ();
        protected FingerprintGestureController (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual void OnGestureDetected (FingerptintGestureTypes gesture);
        public virtual void OnGestureDetectionAvailabilityChanged (bool available);
    }
}

New Type Android.AccessibilityServices.FingerptintGestureTypes

[Serializable]
public enum FingerptintGestureTypes {
    SwipeDown = 8,
    SwipeLeft = 2,
    SwipeRight = 1,
    SwipeUp = 4,
}

Namespace Android.Accounts

Type Changed: Android.Accounts.AbstractAccountAuthenticator

Added methods:

public virtual Android.OS.Bundle FinishSession (AccountAuthenticatorResponse response, string accountType, Android.OS.Bundle sessionBundle);
    public virtual Android.OS.Bundle IsCredentialsUpdateSuggested (AccountAuthenticatorResponse response, Account account, string statusToken);
    public virtual Android.OS.Bundle StartAddAccountSession (AccountAuthenticatorResponse response, string accountType, string authTokenType, string[] requiredFeatures, Android.OS.Bundle options);
    public virtual Android.OS.Bundle StartUpdateCredentialsSession (AccountAuthenticatorResponse response, Account account, string authTokenType, Android.OS.Bundle options);

Type Changed: Android.Accounts.AccountManager

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const string LoginAccountsChangedAction = "android.accounts.LOGIN_ACCOUNTS_CHANGED";

Added fields:

public static const string ActionAccountRemoved = "android.accounts.action.ACCOUNT_REMOVED";
    public static const string KeyAccountSessionBundle = "accountSessionBundle";
    public static const string KeyAccountStatusToken = "accountStatusToken";
    public static const string PackageNameKeyLegacyNotVisible = "android:accounts:key_legacy_not_visible";
    public static const string PackageNameKeyLegacyVisible = "android:accounts:key_legacy_visible";

Added methods:

public virtual bool AddAccountExplicitly (Account account, string password, Android.OS.Bundle extras, System.Collections.Generic.IDictionary<System.String,Java.Lang.Integer> visibility);
    public virtual void AddOnAccountsUpdatedListener (IOnAccountsUpdateListener listener, Android.OS.Handler handler, bool updateImmediately, string[] accountTypes);
    public virtual IAccountManagerFuture FinishSession (Android.OS.Bundle sessionBundle, Android.App.Activity activity, IAccountManagerCallback callback, Android.OS.Handler handler);
    public virtual AccountVisibility GetAccountVisibility (Account account, string packageName);
    public virtual System.Collections.Generic.IDictionary<Account,Java.Lang.Integer> GetAccountsAndVisibilityForPackage (string packageName, string accountType);
    public virtual System.Collections.Generic.IDictionary<System.String,Java.Lang.Integer> GetPackagesAndVisibilityForAccount (Account account);
    public virtual IAccountManagerFuture IsCredentialsUpdateSuggested (Account account, string statusToken, IAccountManagerCallback callback, Android.OS.Handler handler);
    public virtual bool SetAccountVisibility (Account account, string packageName, AccountVisibility visibility);
    public virtual IAccountManagerFuture StartAddAccountSession (string accountType, string authTokenType, string[] requiredFeatures, Android.OS.Bundle options, Android.App.Activity activity, IAccountManagerCallback callback, Android.OS.Handler handler);
    public virtual IAccountManagerFuture StartUpdateCredentialsSession (Account account, string authTokenType, Android.OS.Bundle options, Android.App.Activity activity, IAccountManagerCallback callback, Android.OS.Handler handler);

New Type Android.Accounts.AccountVisibility

[Serializable]
public enum AccountVisibility {
    NotVisible = 3,
    Undefined = 0,
    UserManagedNotVisible = 4,
    UserManagedVisible = 2,
    Visible = 1,
}

Namespace Android.Animation

Type Changed: Android.Animation.AnimatorSet

Added property:

public long CurrentPlayTime { get; set; }

Added method:

public void Reverse ();

Type Changed: Android.Animation.ValueAnimator

Added method:

public static bool AreAnimatorsEnabled ();

Namespace Android.App

Type Changed: Android.App.Activity

Added properties:

public virtual bool IsActivityTransitionRunning { get; }
    public virtual int MaxNumPictureInPictureActions { get; }

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void EnterPictureInPictureMode ();
    [Obsolete ("deprecated")]
    public virtual void OnMultiWindowModeChanged (bool isInMultiWindowMode);
    [Obsolete ("deprecated")]
    public virtual void OnPictureInPictureModeChanged (bool isInPictureInPictureMode);
    [Obsolete ("deprecated")]
    public virtual void OnVisibleBehindCanceled ();
    [Obsolete ("deprecated")]
    public virtual bool RequestVisibleBehind (bool visible);

Added methods:

public virtual bool EnterPictureInPictureMode (PictureInPictureParams params);
    public virtual void OnMultiWindowModeChanged (bool isInMultiWindowMode, Android.Content.Res.Configuration newConfig);
    public virtual void OnPictureInPictureModeChanged (bool isInPictureInPictureMode, Android.Content.Res.Configuration newConfig);
    public virtual void SetPictureInPictureParams (PictureInPictureParams params);

Type Changed: Android.App.ActivityManager

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual System.Collections.Generic.IList<ActivityManager.RunningServiceInfo> GetRunningServices (int maxNum);

Type Changed: Android.App.ActivityManager.RunningAppProcessInfo

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.App.Importance enum directly instead of this field.")]
    public static const Importance ImportanceCached;

    [Obsolete ("This constant will be removed in the future version. Use Android.App.Importance enum directly instead of this field.")]
    public static const Importance ImportancePerceptiblePre26;

Type Changed: Android.App.ActivityOptions

Added property:

public virtual int LaunchDisplayId { get; }

Added methods:

public virtual ActivityOptions SetAppVerificationBundle (Android.OS.Bundle bundle);
    public virtual ActivityOptions SetLaunchDisplayId (int launchDisplayId);

Type Changed: Android.App.AppOpsManager

Added fields:

public static const string OpstrAnswerPhoneCalls = "android:answer_phone_calls";
    public static const string OpstrPictureInPicture = "android:picture_in_picture";
    public static const string OpstrProcessOutgoingCalls = "android:process_outgoing_calls";
    public static const string OpstrReadPhoneNumbers = "android:read_phone_numbers";

Type Changed: Android.App.Fragment

Added properties:

public bool IsStateSaved { get; }
    public Android.Views.LayoutInflater LayoutInflater { get; }

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void OnMultiWindowModeChanged (bool isInMultiWindowMode);
    [Obsolete ("deprecated")]
    public virtual void OnPictureInPictureModeChanged (bool isInPictureInPictureMode);

Added methods:

public virtual Android.Views.LayoutInflater OnGetLayoutInflater (Android.OS.Bundle savedInstanceState);
    public virtual void OnMultiWindowModeChanged (bool isInMultiWindowMode, Android.Content.Res.Configuration newConfig);
    public virtual void OnPictureInPictureModeChanged (bool isInPictureInPictureMode, Android.Content.Res.Configuration newConfig);
    public virtual void PostponeEnterTransition ();
    public virtual void StartPostponedEnterTransition ();

Type Changed: Android.App.FragmentController

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void DispatchMultiWindowModeChanged (bool isInMultiWindowMode);
    [Obsolete ("deprecated")]
    public virtual void DispatchPictureInPictureModeChanged (bool isInPictureInPictureMode);

Added methods:

public virtual void DispatchMultiWindowModeChanged (bool isInMultiWindowMode, Android.Content.Res.Configuration newConfig);
    public virtual void DispatchPictureInPictureModeChanged (bool isInPictureInPictureMode, Android.Content.Res.Configuration newConfig);

Type Changed: Android.App.FragmentManager

Added properties:

public virtual System.Collections.Generic.IList<Fragment> Fragments { get; }
    public virtual bool IsStateSaved { get; }
    public virtual Fragment PrimaryNavigationFragment { get; }

Added methods:

public virtual void RegisterFragmentLifecycleCallbacks (FragmentManager.FragmentLifecycleCallbacks cb, bool recursive);
    public virtual void UnregisterFragmentLifecycleCallbacks (FragmentManager.FragmentLifecycleCallbacks cb);

New Type Android.App.FragmentLifecycleCallbacks

public abstract class FragmentLifecycleCallbacks : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public FragmentManager ();
    protected FragmentManager (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void OnFragmentActivityCreated (FragmentManager fm, Fragment f, Android.OS.Bundle savedInstanceState);
    public virtual void OnFragmentAttached (FragmentManager fm, Fragment f, Android.Content.Context context);
    public virtual void OnFragmentCreated (FragmentManager fm, Fragment f, Android.OS.Bundle savedInstanceState);
    public virtual void OnFragmentDestroyed (FragmentManager fm, Fragment f);
    public virtual void OnFragmentDetached (FragmentManager fm, Fragment f);
    public virtual void OnFragmentPaused (FragmentManager fm, Fragment f);
    public virtual void OnFragmentPreAttached (FragmentManager fm, Fragment f, Android.Content.Context context);
    public virtual void OnFragmentPreCreated (FragmentManager fm, Fragment f, Android.OS.Bundle savedInstanceState);
    public virtual void OnFragmentResumed (FragmentManager fm, Fragment f);
    public virtual void OnFragmentSaveInstanceState (FragmentManager fm, Fragment f, Android.OS.Bundle outState);
    public virtual void OnFragmentStarted (FragmentManager fm, Fragment f);
    public virtual void OnFragmentStopped (FragmentManager fm, Fragment f);
    public virtual void OnFragmentViewCreated (FragmentManager fm, Fragment f, Android.Views.View v, Android.OS.Bundle savedInstanceState);
    public virtual void OnFragmentViewDestroyed (FragmentManager fm, Fragment f);
}

Type Changed: Android.App.FragmentTransaction

Added methods:

public virtual FragmentTransaction RunOnCommit (Java.Lang.IRunnable runnable);
    public virtual FragmentTransaction SetPrimaryNavigationFragment (Fragment fragment);
    public virtual FragmentTransaction SetReorderingAllowed (bool reorderingAllowed);

Type Changed: Android.App.Importance

Added values:

    Cached = 400,
    PerceptiblePre26 = 130,

Type Changed: Android.App.Instrumentation

Added property:

public virtual string ProcessName { get; }

Added methods:

public virtual Android.OS.TestLooperManager AcquireLooperManager (Android.OS.Looper looper);
    public virtual void AddResults (Android.OS.Bundle results);

Type Changed: Android.App.Instrumentation.ActivityMonitor

Added constructor:

public Instrumentation ();

Added method:

public virtual Instrumentation.ActivityResult OnStartActivity (Android.Content.Intent intent);

Type Changed: Android.App.KeyguardManager

Added method:

public virtual void RequestDismissKeyguard (Activity activity, KeyguardManager.KeyguardDismissCallback callback);

New Type Android.App.KeyguardDismissCallback

public abstract class KeyguardDismissCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public KeyguardManager ();
    protected KeyguardManager (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void OnDismissCancelled ();
    public virtual void OnDismissError ();
    public virtual void OnDismissSucceeded ();
}

Type Changed: Android.App.Notification

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const string ExtraLargeIcon = "android.largeIcon";
    [Obsolete ("deprecated")]
    public static const string ExtraSmallIcon = "android.icon";

Added fields:

public static const string ExtraAudioContentsUri = "android.audioContents";
    public static const string ExtraChannelId = "android.intent.extra.CHANNEL_ID";
    public static const string ExtraColorized = "android.colorized";
    public static const string ExtraHistoricMessages = "android.messages.historic";
    public static const string ExtraNotificationId = "android.intent.extra.NOTIFICATION_ID";
    public static const string ExtraNotificationTag = "android.intent.extra.NOTIFICATION_TAG";

Added properties:

public virtual NotificationBadgeIconType BadgeIconType { get; }
    public virtual string ChannelId { get; }
    public virtual NotificationGroupAlertBehavior GroupAlertBehavior { get; }
    public string SettingsText { get; }
    public virtual Java.Lang.ICharSequence SettingsTextFormatted { get; }
    public virtual string ShortcutId { get; }
    public virtual long TimeoutAfter { get; }

Type Changed: Android.App.Notification.Action

Added method:

public virtual RemoteInput[] GetDataOnlyRemoteInputs ();

Type Changed: Android.App.Notification.Builder

Added constructor:

public Notification (Android.Content.Context context, string channelId);

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual Notification.Builder SetDefaults (NotificationDefaults defaults);
    [Obsolete ("deprecated")]
    public virtual Notification.Builder SetLights (int argb, int onMs, int offMs);
    [Obsolete ("deprecated")]
    public virtual Notification.Builder SetPriority (int pri);
    [Obsolete ("deprecated")]
    public virtual Notification.Builder SetSound (Android.Net.Uri sound);
    [Obsolete ("deprecated")]
    public virtual Notification.Builder SetSound (Android.Net.Uri sound, Android.Media.AudioAttributes audioAttributes);
    [Obsolete ("deprecated")]
    public virtual Notification.Builder SetVibrate (long[] pattern);

Added methods:

public virtual Notification.Builder SetBadgeIconType (NotificationBadgeIconType icon);
    public virtual Notification.Builder SetChannelId (string channelId);
    public virtual Notification.Builder SetColorized (bool colorize);
    public virtual Notification.Builder SetGroupAlertBehavior (NotificationGroupAlertBehavior groupAlertBehavior);
    public virtual Notification.Builder SetSettingsText (Java.Lang.ICharSequence text);
    public Notification.Builder SetSettingsText (string text);
    public virtual Notification.Builder SetShortcutId (string shortcutId);
    public virtual Notification.Builder SetTimeoutAfter (long durationMs);

Type Changed: Android.App.Notification.MessagingStyle

Added property:

public virtual System.Collections.Generic.IList<Notification.MessagingStyle.Message> HistoricMessages { get; }

Added method:

public virtual Notification.MessagingStyle AddHistoricMessage (Notification.MessagingStyle.Message message);

Type Changed: Android.App.Notification.Message

Added property:

public Android.OS.Bundle Extras { get; }

Type Changed: Android.App.Notification.WearableExtender

Added property:

public string BridgeTag { get; }

Added method:

public Notification.WearableExtender SetBridgeTag (string bridgeTag);

Type Changed: Android.App.NotificationManager

Added properties:

public virtual System.Collections.Generic.IList<NotificationChannelGroup> NotificationChannelGroups { get; }
    public virtual System.Collections.Generic.IList<NotificationChannel> NotificationChannels { get; }

Added methods:

public virtual void CreateNotificationChannel (NotificationChannel channel);
    public virtual void CreateNotificationChannelGroup (NotificationChannelGroup group);
    public virtual void CreateNotificationChannelGroups (System.Collections.Generic.IList<NotificationChannelGroup> groups);
    public virtual void CreateNotificationChannels (System.Collections.Generic.IList<NotificationChannel> channels);
    public virtual void DeleteNotificationChannel (string channelId);
    public virtual void DeleteNotificationChannelGroup (string groupId);
    public virtual NotificationChannel GetNotificationChannel (string channelId);

Type Changed: Android.App.PendingIntent

Added method:

public static PendingIntent GetForegroundService (Android.Content.Context context, int requestCode, Android.Content.Intent intent, PendingIntentFlags flags);

Type Changed: Android.App.RemoteInput

Added properties:

public System.Collections.Generic.ICollection<string> AllowedDataTypes { get; }
    public bool IsDataOnly { get; }

Added methods:

public static void AddDataResultToIntent (RemoteInput remoteInput, Android.Content.Intent intent, System.Collections.Generic.IDictionary<System.String,Android.Net.Uri> results);
    public static System.Collections.Generic.IDictionary<System.String,Android.Net.Uri> GetDataResultsFromIntent (Android.Content.Intent intent, string remoteInputResultKey);

Type Changed: Android.App.RemoteInput.Builder

Modified methods:

public RemoteInput.Builder SetAllowFreeFormInput (bool allowFreeFormInput allowFreeFormTextInput)

Added method:

public RemoteInput.Builder SetAllowDataType (string mimeType, bool doAllow);

New Type Android.App.AuthenticationRequiredException

public sealed class AuthenticationRequiredException : Java.Lang.SecurityException, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public AuthenticationRequiredException (Java.Lang.Throwable cause, PendingIntent userAction);
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public PendingIntent UserAction { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.App.NotificationBadgeIconType

[Serializable]
public enum NotificationBadgeIconType {
    Large = 2,
    None = 0,
    Small = 1,
}

New Type Android.App.NotificationChannel

public sealed class NotificationChannel : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public NotificationChannel (string id, Java.Lang.ICharSequence name, NotificationImportance importance);
    public NotificationChannel (string id, string name, NotificationImportance importance);
    // fields
    public static const string DefaultChannelId = "miscellaneous";
    // properties
    public Android.Media.AudioAttributes AudioAttributes { get; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public string Description { get; set; }
    public string Group { get; set; }
    public string Id { get; }
    public NotificationImportance Importance { get; set; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public int LightColor { get; set; }
    public NotificationVisibility LockscreenVisibility { get; set; }
    public string Name { get; set; }
    public Java.Lang.ICharSequence NameFormatted { get; set; }
    public Android.Net.Uri Sound { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public bool CanBypassDnd ();
    public bool CanShowBadge ();
    public virtual int DescribeContents ();
    public void EnableLights (bool lights);
    public void EnableVibration (bool vibration);
    public long[] GetVibrationPattern ();
    public void SetBypassDnd (bool bypassDnd);
    public void SetShowBadge (bool showBadge);
    public void SetSound (Android.Net.Uri sound, Android.Media.AudioAttributes audioAttributes);
    public void SetVibrationPattern (long[] vibrationPattern);
    public bool ShouldShowLights ();
    public bool ShouldVibrate ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.App.NotificationChannelGroup

public sealed class NotificationChannelGroup : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public NotificationChannelGroup (string id, Java.Lang.ICharSequence name);
    public NotificationChannelGroup (string id, string name);
    // properties
    public System.Collections.Generic.IList<NotificationChannel> Channels { get; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public string Id { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public string Name { get; }
    public Java.Lang.ICharSequence NameFormatted { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public NotificationChannelGroup Clone ();
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.App.NotificationGroupAlertBehavior

[Serializable]
public enum NotificationGroupAlertBehavior {
    All = 0,
    Children = 2,
    Summary = 1,
}

New Type Android.App.PictureInPictureParams

public sealed class PictureInPictureParams : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel out, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public PictureInPictureParams ();
        protected PictureInPictureParams (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual PictureInPictureParams Build ();
        public virtual PictureInPictureParams.Builder SetActions (System.Collections.Generic.IList<RemoteAction> actions);
        public virtual PictureInPictureParams.Builder SetAspectRatio (Android.Util.Rational aspectRatio);
        public virtual PictureInPictureParams.Builder SetSourceRectHint (Android.Graphics.Rect launchBounds);
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.App.RemoteAction

public sealed class RemoteAction : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public RemoteAction (Android.Graphics.Drawables.Icon icon, Java.Lang.ICharSequence title, Java.Lang.ICharSequence contentDescription, PendingIntent intent);
    public RemoteAction (Android.Graphics.Drawables.Icon icon, string title, string contentDescription, PendingIntent intent);
    // properties
    public PendingIntent ActionIntent { get; }
    public string ContentDescription { get; }
    public Java.Lang.ICharSequence ContentDescriptionFormatted { get; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public bool Enabled { get; set; }
    public Android.Graphics.Drawables.Icon Icon { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public string Title { get; }
    public Java.Lang.ICharSequence TitleFormatted { get; }
    // methods
    public RemoteAction Clone ();
    public virtual int DescribeContents ();
    public void Dump (string prefix, Java.IO.PrintWriter pw);
    public virtual void WriteToParcel (Android.OS.Parcel out, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

Namespace Android.App.Admin

Type Changed: Android.App.Admin.DeviceAdminReceiver

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void OnPasswordChanged (Android.Content.Context context, Android.Content.Intent intent);
    [Obsolete ("deprecated")]
    public virtual void OnPasswordExpiring (Android.Content.Context context, Android.Content.Intent intent);
    [Obsolete ("deprecated")]
    public virtual void OnPasswordFailed (Android.Content.Context context, Android.Content.Intent intent);
    [Obsolete ("deprecated")]
    public virtual void OnPasswordSucceeded (Android.Content.Context context, Android.Content.Intent intent);

Added methods:

public virtual void OnNetworkLogsAvailable (Android.Content.Context context, Android.Content.Intent intent, long batchToken, int networkLogsCount);
    public virtual void OnPasswordChanged (Android.Content.Context context, Android.Content.Intent intent, Android.OS.UserHandle user);
    public virtual void OnPasswordExpiring (Android.Content.Context context, Android.Content.Intent intent, Android.OS.UserHandle user);
    public virtual void OnPasswordFailed (Android.Content.Context context, Android.Content.Intent intent, Android.OS.UserHandle user);
    public virtual void OnPasswordSucceeded (Android.Content.Context context, Android.Content.Intent intent, Android.OS.UserHandle user);
    public virtual void OnUserAdded (Android.Content.Context context, Android.Content.Intent intent, Android.OS.UserHandle newUser);
    public virtual void OnUserRemoved (Android.Content.Context context, Android.Content.Intent intent, Android.OS.UserHandle removedUser);

Type Changed: Android.App.Admin.DevicePolicyManager

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const string ExtraProvisioningEmailAddress = "android.app.extra.PROVISIONING_EMAIL_ADDRESS";

Added fields:

public static const string ActionApplicationDelegationScopesChanged = "android.app.action.APPLICATION_DELEGATION_SCOPES_CHANGED";
    public static const string ActionDeviceAdminService = "android.app.action.DEVICE_ADMIN_SERVICE";
    public static const string ActionProvisioningSuccessful = "android.app.action.PROVISIONING_SUCCESSFUL";
    public static const string DelegationAppRestrictions = "delegation-app-restrictions";
    public static const string DelegationBlockUninstall = "delegation-block-uninstall";
    public static const string DelegationCertInstall = "delegation-cert-install";
    public static const string DelegationEnableSystemApp = "delegation-enable-system-app";
    public static const string DelegationPackageAccess = "delegation-package-access";
    public static const string DelegationPermissionGrant = "delegation-permission-grant";
    public static const string ExtraDelegationScopes = "android.app.extra.DELEGATION_SCOPES";
    public static const string ExtraProvisioningDisclaimerContent = "android.app.extra.PROVISIONING_DISCLAIMER_CONTENT";
    public static const string ExtraProvisioningDisclaimerHeader = "android.app.extra.PROVISIONING_DISCLAIMER_HEADER";
    public static const string ExtraProvisioningDisclaimers = "android.app.extra.PROVISIONING_DISCLAIMERS";
    public static const string ExtraProvisioningKeepAccountOnMigration = "android.app.extra.PROVISIONING_KEEP_ACCOUNT_ON_MIGRATION";
    public static const string ExtraProvisioningSkipUserConsent = "android.app.extra.PROVISIONING_SKIP_USER_CONSENT";

    [Obsolete ("This constant will be removed in the future version. Use Android.App.Admin.DevicePolicyManagerFlags enum directly instead of this field.")]
    public static const DevicePolicyManagerFlags FlagEvictCredentialEncryptionKey;
    public static const string PolicyDisableCamera = "policy_disable_camera";
    public static const string PolicyDisableScreenCapture = "policy_disable_screen_capture";

Obsoleted properties:

[Obsolete ("deprecated")]
    public virtual bool IsCallerApplicationRestrictionsManagingPackage { get; }

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void ClearDeviceOwnerApp (string packageName);
    [Obsolete ("deprecated")]
    public virtual void ClearProfileOwner (Android.Content.ComponentName admin);
    [Obsolete ("deprecated")]
    public virtual string GetApplicationRestrictionsManagingPackage (Android.Content.ComponentName admin);
    [Obsolete ("deprecated")]
    public virtual string GetCertInstallerPackage (Android.Content.ComponentName admin);
    [Obsolete ("deprecated")]
    public virtual void SetApplicationRestrictionsManagingPackage (Android.Content.ComponentName admin, string packageName);
    [Obsolete ("deprecated")]
    public virtual void SetCertInstallerPackage (Android.Content.ComponentName admin, string installerPackage);

Added methods:

public virtual bool BindDeviceAdminServiceAsUser (Android.Content.ComponentName admin, Android.Content.Intent serviceIntent, Android.Content.IServiceConnection conn, Android.Content.Bind flags, Android.OS.UserHandle targetUser);
    public virtual bool ClearResetPasswordToken (Android.Content.ComponentName admin);
    public virtual Android.Content.Intent CreateAdminSupportIntent (string restriction);
    public virtual System.Collections.Generic.ICollection<string> GetAffiliationIds (Android.Content.ComponentName admin);
    public virtual System.Collections.Generic.IList<Android.OS.UserHandle> GetBindDeviceAdminTargetUsers (Android.Content.ComponentName admin);
    public virtual System.Collections.Generic.IList<string> GetDelegatePackages (Android.Content.ComponentName admin, string delegationScope);
    public virtual System.Collections.Generic.IList<string> GetDelegatedScopes (Android.Content.ComponentName admin, string delegatedPackage);
    public virtual string[] GetLockTaskPackages (Android.Content.ComponentName admin);
    public virtual SystemUpdateInfo GetPendingSystemUpdate (Android.Content.ComponentName admin);
    public virtual System.Collections.Generic.IList<string> GetPermittedCrossProfileNotificationListeners (Android.Content.ComponentName admin);
    public virtual long GetRequiredStrongAuthTimeout (Android.Content.ComponentName admin);
    public virtual bool IsBackupServiceEnabled (Android.Content.ComponentName admin);
    public virtual bool IsNetworkLoggingEnabled (Android.Content.ComponentName admin);
    public virtual bool IsResetPasswordTokenActive (Android.Content.ComponentName admin);
    public virtual void LockNow (DevicePolicyManagerFlags flags);
    public virtual bool ResetPasswordWithToken (Android.Content.ComponentName admin, string password, byte[] token, ResetPasswordFlags flags);
    public virtual System.Collections.Generic.IList<NetworkEvent> RetrieveNetworkLogs (Android.Content.ComponentName admin, long batchToken);
    public virtual void SetAffiliationIds (Android.Content.ComponentName admin, System.Collections.Generic.ICollection<string> ids);
    public virtual void SetBackupServiceEnabled (Android.Content.ComponentName admin, bool enabled);
    public virtual void SetDelegatedScopes (Android.Content.ComponentName admin, string delegatePackage, System.Collections.Generic.IList<string> scopes);
    public virtual void SetNetworkLoggingEnabled (Android.Content.ComponentName admin, bool enabled);
    public virtual bool SetPermittedCrossProfileNotificationListeners (Android.Content.ComponentName admin, System.Collections.Generic.IList<string> packageList);
    public virtual void SetRequiredStrongAuthTimeout (Android.Content.ComponentName admin, long timeoutMs);
    public virtual bool SetResetPasswordToken (Android.Content.ComponentName admin, byte[] token);

Type Changed: Android.App.Admin.DevicePolicyManagerFlags

Added value:

    EvictCredentialEncryptionKey = 1,

New Type Android.App.Admin.ConnectEvent

public sealed class ConnectEvent : Android.App.Admin.NetworkEvent, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public Java.Net.InetAddress InetAddress { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public int Port { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public override void WriteToParcel (Android.OS.Parcel out, Android.OS.ParcelableWriteFlags flags);
}

New Type Android.App.Admin.DeviceAdminService

public class DeviceAdminService : Android.App.Service, Android.Content.IComponentCallbacks, Android.Content.IComponentCallbacks2, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public DeviceAdminService ();
    protected DeviceAdminService (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public override Android.OS.IBinder OnBind (Android.Content.Intent intent);
}

New Type Android.App.Admin.DnsEvent

public sealed class DnsEvent : Android.App.Admin.NetworkEvent, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public string Hostname { get; }
    public System.Collections.Generic.IList<Java.Net.InetAddress> InetAddresses { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public int TotalResolvedAddressCount { get; }
    // methods
    public override void WriteToParcel (Android.OS.Parcel out, Android.OS.ParcelableWriteFlags flags);
}

New Type Android.App.Admin.NetworkEvent

public abstract class NetworkEvent : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected NetworkEvent (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual string PackageName { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public virtual long Timestamp { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel out, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.App.Admin.SecurityPatchStates

[Serializable]
public enum SecurityPatchStates {
    StateFalse = 1,
    StateTrue = 2,
    StateUnknown = 0,
}

New Type Android.App.Admin.SystemUpdateInfo

public sealed class SystemUpdateInfo : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public long ReceivedTime { get; }
    public SecurityPatchStates SecurityPatchState { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

Namespace Android.App.Assist

Type Changed: Android.App.Assist.AssistStructure

Added properties:

public virtual long AcquisitionEndTime { get; }
    public virtual long AcquisitionStartTime { get; }
    public virtual bool IsHomeActivity { get; }

Type Changed: Android.App.Assist.AssistStructure.ViewNode

Added properties:

public virtual Android.Views.Autofill.AutofillId AutofillId { get; }
    public virtual Android.Views.AutofillType AutofillType { get; }
    public virtual Android.Views.Autofill.AutofillValue AutofillValue { get; }
    public virtual Android.Views.ViewStructure.HtmlInfo HtmlInfo { get; }
    public virtual Android.Text.InputTypes InputType { get; }
    public virtual bool IsOpaque { get; }
    public virtual Android.OS.LocaleList LocaleList { get; }
    public virtual string WebDomain { get; }

Added methods:

public virtual string[] GetAutofillHints ();
    public string[] GetAutofillOptions ();
    public virtual Java.Lang.ICharSequence[] GetAutofillOptionsFormatted ();

Namespace Android.App.Backup

Type Changed: Android.App.Backup.BackupDataOutput

Added property:

public virtual long Quota { get; }

Type Changed: Android.App.Backup.FullBackupDataOutput

Added property:

public virtual long Quota { get; }

Namespace Android.App.Job

Type Changed: Android.App.Job.JobInfo

Added properties:

public virtual Android.Content.ClipData ClipData { get; }
    public virtual int ClipGrantFlags { get; }
    public virtual bool IsRequireBatteryNotLow { get; }
    public virtual bool IsRequireStorageNotLow { get; }
    public virtual Android.OS.Bundle TransientExtras { get; }

Type Changed: Android.App.Job.JobInfo.Builder

Added methods:

public JobInfo.Builder SetClipData (Android.Content.ClipData clip, Android.Content.ActivityFlags grantFlags);
    public JobInfo.Builder SetRequiresBatteryNotLow (bool batteryNotLow);
    public JobInfo.Builder SetRequiresStorageNotLow (bool storageNotLow);
    public JobInfo.Builder SetTransientExtras (Android.OS.Bundle extras);

Type Changed: Android.App.Job.JobParameters

Added properties:

public virtual Android.Content.ClipData ClipData { get; }
    public virtual int ClipGrantFlags { get; }
    public virtual Android.OS.Bundle TransientExtras { get; }

Added methods:

public virtual void CompleteWork (JobWorkItem work);
    public virtual JobWorkItem DequeueWork ();

Type Changed: Android.App.Job.JobScheduler

Added method:

public virtual int Enqueue (JobInfo job, JobWorkItem work);

Type Changed: Android.App.Job.NetworkType

Added value:

    Metered = 4,

New Type Android.App.Job.JobServiceEngine

public abstract class JobServiceEngine : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public JobServiceEngine (Android.App.Service service);
    protected JobServiceEngine (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public Android.OS.IBinder Binder { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void JobFinished (JobParameters params, bool needsReschedule);
    public virtual bool OnStartJob (JobParameters params);
    public virtual bool OnStopJob (JobParameters params);
}

New Type Android.App.Job.JobWorkItem

public sealed class JobWorkItem : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public JobWorkItem (Android.Content.Intent intent);
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public int DeliveryCount { get; }
    public Android.Content.Intent Intent { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel out, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

Namespace Android.App.Usage

Type Changed: Android.App.Usage.NetworkStats

Type Changed: Android.App.Usage.NetworkStats.Bucket

Added property:

public virtual MeteredStates Metered { get; }

New Type Android.App.Usage.ExternalStorageStats

public sealed class ExternalStorageStats : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public long AppBytes { get; }
    public long AudioBytes { get; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public long ImageBytes { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public long TotalBytes { get; }
    public long VideoBytes { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.App.Usage.MeteredStates

[Serializable]
public enum MeteredStates {
    All = -1,
    No = 1,
    Yes = 2,
}

New Type Android.App.Usage.StorageStats

public sealed class StorageStats : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public long AppBytes { get; }
    public long CacheBytes { get; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public long DataBytes { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.App.Usage.StorageStatsManager

public class StorageStatsManager : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected StorageStatsManager (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual long GetFreeBytes (Java.Util.UUID storageUuid);
    public virtual long GetTotalBytes (Java.Util.UUID storageUuid);
    public virtual ExternalStorageStats QueryExternalStatsForUser (Java.Util.UUID storageUuid, Android.OS.UserHandle user);
    public virtual StorageStats QueryStatsForPackage (Java.Util.UUID storageUuid, string packageName, Android.OS.UserHandle user);
    public virtual StorageStats QueryStatsForUid (Java.Util.UUID storageUuid, int uid);
    public virtual StorageStats QueryStatsForUser (Java.Util.UUID storageUuid, Android.OS.UserHandle user);
}

Namespace Android.Appwidget

Type Changed: Android.Appwidget.AppWidgetHost

Added method:

public virtual int[] GetAppWidgetIds ();

Type Changed: Android.Appwidget.AppWidgetHostView

Added method:

public virtual void SetExecutor (Java.Util.Concurrent.IExecutor executor);

Type Changed: Android.Appwidget.AppWidgetManager

Added field:

public static const string ExtraAppwidgetPreview = "appWidgetPreview";

Added property:

public virtual bool IsRequestPinAppWidgetSupported { get; }

Added methods:

public virtual System.Collections.Generic.IList<AppWidgetProviderInfo> GetInstalledProvidersForPackage (string packageName, Android.OS.UserHandle profile);
    public virtual bool RequestPinAppWidget (Android.Content.ComponentName provider, Android.OS.Bundle extras, Android.App.PendingIntent successCallback);

Namespace Android.Bluetooth

Type Changed: Android.Bluetooth.BluetoothAdapter

Added properties:

public bool IsLe2MPhySupported { get; }
    public bool IsLeCodedPhySupported { get; }
    public bool IsLeExtendedAdvertisingSupported { get; }
    public bool IsLePeriodicAdvertisingSupported { get; }
    public int LeMaximumAdvertisingDataLength { get; }

Type Changed: Android.Bluetooth.BluetoothDevice

Added methods:

public BluetoothGatt ConnectGatt (Android.Content.Context context, bool autoConnect, BluetoothGattCallback callback, BluetoothTransports transport, LE.ScanSettingsPhy phy);
    public BluetoothGatt ConnectGatt (Android.Content.Context context, bool autoConnect, BluetoothGattCallback callback, BluetoothTransports transport, LE.ScanSettingsPhy phy, Android.OS.Handler handler);

Type Changed: Android.Bluetooth.BluetoothGatt

Added methods:

public void ReadPhy ();
    public void SetPreferredPhy (BluetoothPhy txPhy, BluetoothPhy rxPhy, BluetoothPhyOption phyOptions);

Type Changed: Android.Bluetooth.BluetoothGattCallback

Added methods:

public virtual void OnPhyRead (BluetoothGatt gatt, LE.ScanSettingsPhy txPhy, LE.ScanSettingsPhy rxPhy, GattStatus status);
    public virtual void OnPhyUpdate (BluetoothGatt gatt, LE.ScanSettingsPhy txPhy, LE.ScanSettingsPhy rxPhy, GattStatus status);

Type Changed: Android.Bluetooth.BluetoothGattServer

Added methods:

public void ReadPhy (BluetoothDevice device);
    public void SetPreferredPhy (BluetoothDevice device, BluetoothPhy txPhy, BluetoothPhy rxPhy, BluetoothPhyOption phyOptions);

Type Changed: Android.Bluetooth.BluetoothGattServerCallback

Added methods:

public virtual void OnPhyRead (BluetoothDevice device, LE.ScanSettingsPhy txPhy, LE.ScanSettingsPhy rxPhy, GattStatus status);
    public virtual void OnPhyUpdate (BluetoothDevice device, LE.ScanSettingsPhy txPhy, LE.ScanSettingsPhy rxPhy, GattStatus status);

New Type Android.Bluetooth.BluetoothPhy

[Serializable]
public enum BluetoothPhy {
    Le1m = 1,
    Le1mMask = 1,
    Le2m = 2,
    Le2mMask = 2,
    LeCoded = 3,
    LeCodedMask = 4,
}

New Type Android.Bluetooth.BluetoothPhyOption

[Serializable]
public enum BluetoothPhyOption {
    NoPreferred = 0,
    S2 = 1,
    S8 = 2,
}

Namespace Android.Bluetooth.LE

Type Changed: Android.Bluetooth.LE.BluetoothLeAdvertiser

Added methods:

public void StartAdvertisingSet (AdvertisingSetParameters parameters, AdvertiseData advertiseData, AdvertiseData scanResponse, PeriodicAdvertisingParameters periodicParameters, AdvertiseData periodicData, AdvertisingSetCallback callback);
    public void StartAdvertisingSet (AdvertisingSetParameters parameters, AdvertiseData advertiseData, AdvertiseData scanResponse, PeriodicAdvertisingParameters periodicParameters, AdvertiseData periodicData, AdvertisingSetCallback callback, Android.OS.Handler handler);
    public void StartAdvertisingSet (AdvertisingSetParameters parameters, AdvertiseData advertiseData, AdvertiseData scanResponse, PeriodicAdvertisingParameters periodicParameters, AdvertiseData periodicData, int duration, int maxExtendedAdvertisingEvents, AdvertisingSetCallback callback);
    public void StartAdvertisingSet (AdvertisingSetParameters parameters, AdvertiseData advertiseData, AdvertiseData scanResponse, PeriodicAdvertisingParameters periodicParameters, AdvertiseData periodicData, int duration, int maxExtendedAdvertisingEvents, AdvertisingSetCallback callback, Android.OS.Handler handler);
    public void StopAdvertisingSet (AdvertisingSetCallback callback);

Type Changed: Android.Bluetooth.LE.BluetoothLeScanner

Added fields:

public static const string ExtraCallbackType = "android.bluetooth.le.extra.CALLBACK_TYPE";
    public static const string ExtraErrorCode = "android.bluetooth.le.extra.ERROR_CODE";
    public static const string ExtraListScanResult = "android.bluetooth.le.extra.LIST_SCAN_RESULT";

Added methods:

public int StartScan (System.Collections.Generic.IList<ScanFilter> filters, ScanSettings settings, Android.App.PendingIntent callbackIntent);
    public void StopScan (Android.App.PendingIntent callbackIntent);

Type Changed: Android.Bluetooth.LE.ScanResult

Added constructor:

public ScanResult (Android.Bluetooth.BluetoothDevice device, int eventType, ScanSettingsPhy primaryPhy, ScanSettingsPhy secondaryPhy, int advertisingSid, AdvertiseTxPower txPower, int rssi, int periodicAdvertisingInterval, ScanRecord scanRecord, long timestampNanos);

Added fields:

public static const int PeriodicIntervalNotPresent;
    public static const int SidNotPresent;
    public static const int TxPowerNotPresent;

Added properties:

public int AdvertisingSid { get; }
    public DataStatus DataStatus { get; }
    public bool IsConnectable { get; }
    public bool IsLegacy { get; }
    public int PeriodicAdvertisingInterval { get; }
    public ScanSettingsPhy PrimaryPhy { get; }
    public ScanSettingsPhy SecondaryPhy { get; }
    public AdvertiseTxPower TxPower { get; }

Type Changed: Android.Bluetooth.LE.ScanSettings

Added properties:

public bool Legacy { get; }
    public ScanSettingsPhy Phy { get; }

Type Changed: Android.Bluetooth.LE.ScanSettings.Builder

Added methods:

public ScanSettings.Builder SetLegacy (bool legacy);
    public ScanSettings.Builder SetPhy (Android.Bluetooth.BluetoothPhy phy);

New Type Android.Bluetooth.LE.AdvertiseResult

[Serializable]
public enum AdvertiseResult {
    FailedAlreadyStarted = 3,
    FailedDataTooLarge = 1,
    FailedFeatureUnsupported = 5,
    FailedInternalError = 4,
    FailedTooManyAdvertisers = 2,
    Success = 0,
}

New Type Android.Bluetooth.LE.AdvertiseTxPower

[Serializable]
public enum AdvertiseTxPower {
    High = 1,
    Low = -15,
    Max = 1,
    Medium = -7,
    Min = -127,
    UltraLow = -21,
}

New Type Android.Bluetooth.LE.AdvertisingSet

public sealed class AdvertisingSet : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public void EnableAdvertising (bool enable, int duration, int maxExtendedAdvertisingEvents);
    public void SetAdvertisingData (AdvertiseData advertiseData);
    public void SetAdvertisingParameters (AdvertisingSetParameters parameters);
    public void SetPeriodicAdvertisingData (AdvertiseData periodicData);
    public void SetPeriodicAdvertisingEnabled (bool enable);
    public void SetPeriodicAdvertisingParameters (PeriodicAdvertisingParameters parameters);
    public void SetScanResponseData (AdvertiseData scanResponse);
}

New Type Android.Bluetooth.LE.AdvertisingSetCallback

public abstract class AdvertisingSetCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public AdvertisingSetCallback ();
    protected AdvertisingSetCallback (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void OnAdvertisingDataSet (AdvertisingSet advertisingSet, AdvertiseResult status);
    public virtual void OnAdvertisingEnabled (AdvertisingSet advertisingSet, bool enable, AdvertiseResult status);
    public virtual void OnAdvertisingParametersUpdated (AdvertisingSet advertisingSet, int txPower, AdvertiseResult status);
    public virtual void OnAdvertisingSetStarted (AdvertisingSet advertisingSet, int txPower, AdvertiseResult status);
    public virtual void OnAdvertisingSetStopped (AdvertisingSet advertisingSet);
    public virtual void OnPeriodicAdvertisingDataSet (AdvertisingSet advertisingSet, AdvertiseResult status);
    public virtual void OnPeriodicAdvertisingEnabled (AdvertisingSet advertisingSet, bool enable, AdvertiseResult status);
    public virtual void OnPeriodicAdvertisingParametersUpdated (AdvertisingSet advertisingSet, AdvertiseResult status);
    public virtual void OnScanResponseDataSet (AdvertisingSet advertisingSet, AdvertiseResult status);
}

New Type Android.Bluetooth.LE.AdvertisingSetParameters

public sealed class AdvertisingSetParameters : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const int IntervalHigh;
    public static const int IntervalLow;
    public static const int IntervalMax;
    public static const int IntervalMedium;
    public static const int IntervalMin;
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public int Interval { get; }
    public bool IsAnonymous { get; }
    public bool IsConnectable { get; }
    public bool IsLegacy { get; }
    public bool IsScannable { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public Android.Bluetooth.BluetoothPhy PrimaryPhy { get; }
    public Android.Bluetooth.BluetoothPhy SecondaryPhy { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public AdvertiseTxPower TxPowerLevel { get; }
    // methods
    public virtual int DescribeContents ();
    public bool IncludeTxPower ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public AdvertisingSetParameters ();
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public AdvertisingSetParameters Build ();
        public AdvertisingSetParameters.Builder SetAnonymous (bool isAnonymous);
        public AdvertisingSetParameters.Builder SetConnectable (bool connectable);
        public AdvertisingSetParameters.Builder SetIncludeTxPower (bool includeTxPower);
        public AdvertisingSetParameters.Builder SetInterval (int interval);
        public AdvertisingSetParameters.Builder SetLegacyMode (bool isLegacy);
        public AdvertisingSetParameters.Builder SetPrimaryPhy (ScanSettingsPhy primaryPhy);
        public AdvertisingSetParameters.Builder SetScannable (bool scannable);
        public AdvertisingSetParameters.Builder SetSecondaryPhy (ScanSettingsPhy secondaryPhy);
        public AdvertisingSetParameters.Builder SetTxPowerLevel (AdvertiseTxPower txPowerLevel);
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Bluetooth.LE.BluetoothPhy

[Serializable]
public enum BluetoothPhy {
    Unused = 0,
}

New Type Android.Bluetooth.LE.DataStatus

[Serializable]
public enum DataStatus {
    Complete = 0,
    Truncated = 2,
}

New Type Android.Bluetooth.LE.PeriodicAdvertisingParameters

public sealed class PeriodicAdvertisingParameters : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public bool IncludeTxPower { get; }
    public int Interval { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public PeriodicAdvertisingParameters ();
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public PeriodicAdvertisingParameters Build ();
        public PeriodicAdvertisingParameters.Builder SetIncludeTxPower (bool includeTxPower);
        public PeriodicAdvertisingParameters.Builder SetInterval (int interval);
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Bluetooth.LE.ScanSettingsPhy

[Serializable]
public enum ScanSettingsPhy {
    AllSupported = 255,
}

Namespace Android.Content

Type Changed: Android.Content.ActivityFlags

Added value:

    ReceiverVisibleToInstantApps = 2097152,

Type Changed: Android.Content.ClipData

Added method:

public virtual void AddItem (ContentResolver resolver, ClipData.Item item);

Type Changed: Android.Content.ClipDescription

Added property:

public virtual long Timestamp { get; }

Type Changed: Android.Content.ContentProvider

Added methods:

public virtual Android.Database.ICursor Query (Android.Net.Uri uri, string[] projection, Android.OS.Bundle queryArgs, Android.OS.CancellationSignal cancellationSignal);
    public virtual bool Refresh (Android.Net.Uri uri, Android.OS.Bundle args, Android.OS.CancellationSignal cancellationSignal);

Type Changed: Android.Content.ContentProviderClient

Modified methods:

public virtual Android.Database.ICursor Query (Android.Net.Uri url uri, string[] projection, string selection, string[] selectionArgs, string sortOrder, Android.OS.CancellationSignal cancellationSignal)

Added methods:

public virtual Android.Database.ICursor Query (Android.Net.Uri uri, string[] projection, Android.OS.Bundle queryArgs, Android.OS.CancellationSignal cancellationSignal);
    public virtual bool Refresh (Android.Net.Uri url, Android.OS.Bundle args, Android.OS.CancellationSignal cancellationSignal);

Type Changed: Android.Content.ContentResolver

Added fields:

public static const string ExtraHonoredArgs = "android.content.extra.HONORED_ARGS";
    public static const string ExtraRefreshSupported = "android.content.extra.REFRESH_SUPPORTED";
    public static const string ExtraTotalCount = "android.content.extra.TOTAL_COUNT";
    public static const string QueryArgLimit = "android:query-arg-limit";
    public static const string QueryArgOffset = "android:query-arg-offset";
    public static const string QueryArgSortCollation = "android:query-arg-sort-collation";
    public static const string QueryArgSortColumns = "android:query-arg-sort-columns";
    public static const string QueryArgSortDirection = "android:query-arg-sort-direction";
    public static const string QueryArgSqlSelection = "android:query-arg-sql-selection";
    public static const string QueryArgSqlSelectionArgs = "android:query-arg-sql-selection-args";
    public static const string QueryArgSqlSortOrder = "android:query-arg-sql-sort-order";

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.QuerySortDirection enum directly instead of this field.")]
    public static const QuerySortDirection QuerySortDirectionAscending;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.QuerySortDirection enum directly instead of this field.")]
    public static const QuerySortDirection QuerySortDirectionDescending;

Added methods:

public Android.Database.ICursor Query (Android.Net.Uri uri, string[] projection, Android.OS.Bundle queryArgs, Android.OS.CancellationSignal cancellationSignal);
    public bool Refresh (Android.Net.Uri url, Android.OS.Bundle args, Android.OS.CancellationSignal cancellationSignal);

Type Changed: Android.Content.Context

Added fields:

public static const string CompanionDeviceService = "companiondevice";
    public static const int ReceiverVisibleToInstantApps;
    public static const string StorageStatsService = "storagestats";
    public static const string TextClassificationService = "textclassification";
    public static const string WifiAwareService = "wifiaware";

Added methods:

public virtual Context CreateContextForSplit (string splitName);
    public virtual Intent RegisterReceiver (BroadcastReceiver receiver, IntentFilter filter, ActivityFlags flags);
    public virtual Intent RegisterReceiver (BroadcastReceiver receiver, IntentFilter filter, string broadcastPermission, Android.OS.Handler scheduler, ActivityFlags flags);
    public virtual void RevokeUriPermission (string toPackage, Android.Net.Uri uri, ActivityFlags modeFlags);
    public virtual ComponentName StartForegroundService (Intent service);

Type Changed: Android.Content.ContextWrapper

Added methods:

public override Context CreateContextForSplit (string splitName);
    public override Intent RegisterReceiver (BroadcastReceiver receiver, IntentFilter filter, ActivityFlags flags);
    public override Intent RegisterReceiver (BroadcastReceiver receiver, IntentFilter filter, string broadcastPermission, Android.OS.Handler scheduler, ActivityFlags flags);
    public override void RevokeUriPermission (string targetPackage, Android.Net.Uri uri, ActivityFlags modeFlags);
    public override ComponentName StartForegroundService (Intent service);

Type Changed: Android.Content.Intent

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const string ActionDeviceStorageLow = "android.intent.action.DEVICE_STORAGE_LOW";
    [Obsolete ("deprecated")]
    public static const string ActionDeviceStorageOk = "android.intent.action.DEVICE_STORAGE_OK";
    [Obsolete ("deprecated")]
    public static const string ExtraShortcutIcon = "android.intent.extra.shortcut.ICON";
    [Obsolete ("deprecated")]
    public static const string ExtraShortcutIconResource = "android.intent.extra.shortcut.ICON_RESOURCE";
    [Obsolete ("deprecated")]
    public static const string ExtraShortcutIntent = "android.intent.extra.shortcut.INTENT";
    [Obsolete ("deprecated")]
    public static const string ExtraShortcutName = "android.intent.extra.shortcut.NAME";

Added fields:

public static const string ActionCarrierSetup = "android.intent.action.CARRIER_SETUP";
    public static const string CategoryTypedOpenable = "android.intent.category.TYPED_OPENABLE";
    public static const string CategoryVrHome = "android.intent.category.VR_HOME";
    public static const string ExtraComponentName = "android.intent.extra.COMPONENT_NAME";
    public static const string ExtraContentAnnotations = "android.intent.extra.CONTENT_ANNOTATIONS";
    public static const string ExtraFromStorage = "android.intent.extra.FROM_STORAGE";
    public static const string ExtraQuickViewFeatures = "android.intent.extra.QUICK_VIEW_FEATURES";

Added method:

public virtual void RemoveFlags (ActivityFlags flags);

New Type Android.Content.QuerySortDirection

[Serializable]
public enum QuerySortDirection {
    Ascending = 0,
    Descending = 1,
}

New Type Android.Content.QuickViewConstants

public class QuickViewConstants : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected QuickViewConstants (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // fields
    public static const string FeatureDownload = "android:download";
    public static const string FeatureEdit = "android:edit";
    public static const string FeaturePrint = "android:print";
    public static const string FeatureSend = "android:send";
    public static const string FeatureView = "android:view";
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

Namespace Android.Content.PM

Type Changed: Android.Content.PM.ActivityInfo

Added property:

public ActivityColorMode ColorMode { get; set; }

Type Changed: Android.Content.PM.ApplicationInfo

Added properties:

public ApplicationCategories Category { get; set; }
    public System.Collections.Generic.IList<string> SplitNames { get; set; }
    public Java.Util.UUID StorageUuid { get; set; }

Added methods:

public static string GetCategoryTitle (Android.Content.Context context, ApplicationCategories category);
    public static Java.Lang.ICharSequence GetCategoryTitleFormatted (Android.Content.Context context, ApplicationCategories category);

Type Changed: Android.Content.PM.ComponentInfo

Added property:

public string SplitName { get; set; }

Type Changed: Android.Content.PM.ConfigChanges

Added value:

    ColorMode = 16384,

Type Changed: Android.Content.PM.InstrumentationInfo

Added properties:

public System.Collections.Generic.IList<string> SplitNames { get; set; }
    public string TargetProcesses { get; set; }

Type Changed: Android.Content.PM.LauncherApps

Added fields:

public static const string ActionConfirmPinAppwidget = "android.content.pm.action.CONFIRM_PIN_APPWIDGET";
    public static const string ActionConfirmPinShortcut = "android.content.pm.action.CONFIRM_PIN_SHORTCUT";
    public static const string ExtraPinItemRequest = "android.content.pm.extra.PIN_ITEM_REQUEST";

Added property:

public virtual System.Collections.Generic.IList<Android.OS.UserHandle> Profiles { get; }

Added methods:

public virtual ApplicationInfo GetApplicationInfo (string packageName, PackageInfoFlags flags, Android.OS.UserHandle user);
    public virtual LauncherApps.PinItemRequest GetPinItemRequest (Android.Content.Intent intent);
    public virtual Android.Content.IntentSender GetShortcutConfigActivityIntent (LauncherActivityInfo info);
    public virtual System.Collections.Generic.IList<LauncherActivityInfo> GetShortcutConfigActivityList (string packageName, Android.OS.UserHandle user);

New Type Android.Content.PM.PinItemRequest

public sealed class PinItemRequest : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.PM.PinItemRequestType enum directly instead of this field.")]
    public static const PinItemRequestType RequestTypeAppwidget;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.PM.PinItemRequestType enum directly instead of this field.")]
    public static const PinItemRequestType RequestTypeShortcut;
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public Android.OS.Bundle Extras { get; }
    public bool IsValid { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public PinItemRequestType RequestType { get; }
    public ShortcutInfo ShortcutInfo { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public bool Accept ();
    public bool Accept (Android.OS.Bundle options);
    public virtual int DescribeContents ();
    public Android.Appwidget.AppWidgetProviderInfo GetAppWidgetProviderInfo (Android.Content.Context context);
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

Type Changed: Android.Content.PM.PackageInstaller

Added fields:

public static const string ActionSessionCommitted = "android.content.pm.action.SESSION_COMMITTED";
    public static const string ExtraSession = "android.content.pm.extra.SESSION";

Added method:

public virtual void Uninstall (VersionedPackage versionedPackage, Android.Content.IntentSender statusReceiver);

Type Changed: Android.Content.PM.PackageInstaller.SessionInfo

Added properties:

public virtual PackageInstallReason InstallReason { get; }
    public virtual bool IsSealed { get; }

Type Changed: Android.Content.PM.PackageInstaller.SessionParams

Added method:

public virtual void SetInstallReason (PackageInstallReason installReason);

Type Changed: Android.Content.PM.PackageManager

Added fields:

public static const string FeatureActivitiesOnSecondaryDisplays = "android.software.activities_on_secondary_displays";
    public static const string FeatureAutofill = "android.software.autofill";
    public static const string FeatureCompanionDeviceSetup = "android.software.companion_device_setup";
    public static const string FeatureEmbedded = "android.hardware.type.embedded";
    public static const string FeatureLeanbackOnly = "android.software.leanback_only";
    public static const string FeatureVrHeadtracking = "android.hardware.vr.headtracking";
    public static const string FeatureVulkanHardwareCompute = "android.hardware.vulkan.compute";
    public static const string FeatureWifiAware = "android.hardware.wifi.aware";
    public static const int VersionCodeHighest;

Added properties:

public virtual int InstantAppCookieMaxBytes { get; }
    public virtual bool IsInstantApp { get; }

Added methods:

public virtual bool CanRequestPackageInstalls ();
    public virtual void ClearInstantAppCookie ();
    public virtual ChangedPackages GetChangedPackages (int sequenceNumber);
    public virtual byte[] GetInstantAppCookie ();
    public virtual PackageInfo GetPackageInfo (VersionedPackage versionedPackage, PackageInfoFlags flags);
    public virtual System.Collections.Generic.IList<SharedLibraryInfo> GetSharedLibraries (PackageInstallReason flags);
    public virtual bool InvokeIsInstantApp (string packageName);
    public virtual void SetApplicationCategoryHint (string packageName, int categoryHint);
    public virtual void UpdateInstantAppCookie (byte[] cookie);

Type Changed: Android.Content.PM.Protection

Added value:

    FlagRuntimeOnly = 8192,

Type Changed: Android.Content.PM.ResolveInfo

Added property:

public bool IsInstantAppAvailable { get; set; }

Type Changed: Android.Content.PM.ShortcutManager

Added property:

public virtual bool IsRequestPinShortcutSupported { get; }

Added methods:

public virtual Android.Content.Intent CreateShortcutResultIntent (ShortcutInfo shortcut);
    public virtual bool RequestPinShortcut (ShortcutInfo shortcut, Android.Content.IntentSender resultIntent);

New Type Android.Content.PM.ActivityColorMode

[Serializable]
public enum ActivityColorMode {
    Default = 0,
    Hdr = 2,
    WideColorGamut = 1,
}

New Type Android.Content.PM.ApplicationCategories

[Serializable]
public enum ApplicationCategories {
    Audio = 1,
    Game = 0,
    Image = 3,
    Maps = 6,
    News = 5,
    Productivity = 7,
    Social = 4,
    Undefined = -1,
    Video = 2,
}

New Type Android.Content.PM.ChangedPackages

public sealed class ChangedPackages : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public ChangedPackages (int sequenceNumber, System.Collections.Generic.IList<string> packageNames);
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public System.Collections.Generic.IList<string> PackageNames { get; }
    public int SequenceNumber { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Content.PM.PackageInstallReason

[Serializable]
public enum PackageInstallReason {
    DeviceRestore = 2,
    DeviceSetup = 3,
    Policy = 1,
    Unknown = 0,
    User = 4,
}

New Type Android.Content.PM.PinItemRequestType

[Serializable]
public enum PinItemRequestType {
    Appwidget = 2,
    Shortcut = 1,
}

New Type Android.Content.PM.SharedLibraryInfo

public sealed class SharedLibraryInfo : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.PM.SharedLibraryType enum directly instead of this field.")]
    public static const SharedLibraryType TypeBuiltin;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.PM.SharedLibraryType enum directly instead of this field.")]
    public static const SharedLibraryType TypeDynamic;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.PM.SharedLibraryType enum directly instead of this field.")]
    public static const SharedLibraryType TypeStatic;
    public static const int VersionUndefined;
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public VersionedPackage DeclaringPackage { get; }
    public System.Collections.Generic.IList<VersionedPackage> DependentPackages { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public string Name { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public SharedLibraryType Type { get; }
    public int Version { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel parcel, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Content.PM.SharedLibraryType

[Serializable]
public enum SharedLibraryType {
    Builtin = 0,
    Dynamic = 1,
    Static = 2,
}

New Type Android.Content.PM.VersionedPackage

public sealed class VersionedPackage : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public VersionedPackage (string packageName, int versionCode);
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public string PackageName { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public int VersionCode { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel parcel, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

Namespace Android.Content.Res

Type Changed: Android.Content.Res.Configuration

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.ColorMode enum directly instead of this field.")]
    public static const ColorMode ColorModeHdrMask;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.ColorMode enum directly instead of this field.")]
    public static const ColorMode ColorModeHdrNo;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.ColorMode enum directly instead of this field.")]
    public static const ColorMode ColorModeHdrShift;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.ColorMode enum directly instead of this field.")]
    public static const ColorMode ColorModeHdrUndefined;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.ColorMode enum directly instead of this field.")]
    public static const ColorMode ColorModeHdrYes;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.ColorMode enum directly instead of this field.")]
    public static const ColorMode ColorModeUndefined;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.ColorMode enum directly instead of this field.")]
    public static const ColorMode ColorModeWideColorGamutMask;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.ColorMode enum directly instead of this field.")]
    public static const ColorMode ColorModeWideColorGamutNo;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.ColorMode enum directly instead of this field.")]
    public static const ColorMode ColorModeWideColorGamutUndefined;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.ColorMode enum directly instead of this field.")]
    public static const ColorMode ColorModeWideColorGamutYes;

    [Obsolete ("This constant will be removed in the future version. Use Android.Content.Res.UiMode enum directly instead of this field.")]
    public static const UiMode UiModeTypeVrHeadset;

Added properties:

public ColorMode ColorMode { get; set; }
    public bool IsScreenHdr { get; }
    public bool IsScreenWideColorGamut { get; }

Type Changed: Android.Content.Res.Resources

Added method:

public virtual Android.Graphics.Typeface GetFont (int id);

Type Changed: Android.Content.Res.TypedArray

Added method:

public virtual Android.Graphics.Typeface GetFont (int index);

Type Changed: Android.Content.Res.UiMode

Added value:

    TypeVrHeadset = 7,

New Type Android.Content.Res.ColorMode

[Serializable]
public enum ColorMode {
    HdrMask = 12,
    HdrNo = 4,
    HdrShift = 2,
    HdrUndefined = 0,
    HdrYes = 8,
    Undefined = 0,
    WideColorGamutMask = 3,
    WideColorGamutNo = 1,
    WideColorGamutUndefined = 0,
    WideColorGamutYes = 2,
}

Namespace Android.Graphics

Type Changed: Android.Graphics.Bitmap

Added property:

public ColorSpace ColorSpace { get; }

Added methods:

public static Bitmap CreateBitmap (int width, int height, Bitmap.Config config, bool hasAlpha);
    public static Bitmap CreateBitmap (Android.Util.DisplayMetrics display, int width, int height, Bitmap.Config config, bool hasAlpha);
    public static Bitmap CreateBitmap (int width, int height, Bitmap.Config config, bool hasAlpha, ColorSpace colorSpace);
    public static Bitmap CreateBitmap (Android.Util.DisplayMetrics display, int width, int height, Bitmap.Config config, bool hasAlpha, ColorSpace colorSpace);

Type Changed: Android.Graphics.Bitmap.Config

Added properties:

public static Bitmap.Config Hardware { get; }
    public static Bitmap.Config RgbaF16 { get; }

Type Changed: Android.Graphics.BitmapFactory

Type Changed: Android.Graphics.BitmapFactory.Options

Added properties:

public ColorSpace InPreferredColorSpace { get; set; }
    public ColorSpace OutColorSpace { get; set; }
    public Bitmap.Config OutConfig { get; set; }

Type Changed: Android.Graphics.Canvas

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual bool ClipPath (Path path, Region.Op op);
    [Obsolete ("deprecated")]
    public virtual bool ClipRect (Rect rect, Region.Op op);
    [Obsolete ("deprecated")]
    public virtual bool ClipRect (RectF rect, Region.Op op);
    [Obsolete ("deprecated")]
    public virtual bool ClipRect (float left, float top, float right, float bottom, Region.Op op);
    [Obsolete ("deprecated")]
    public virtual int Save (SaveFlags saveFlags);
    [Obsolete ("deprecated")]
    public virtual int SaveLayer (RectF bounds, Paint paint, SaveFlags saveFlags);
    [Obsolete ("deprecated")]
    public virtual int SaveLayer (float left, float top, float right, float bottom, Paint paint, SaveFlags saveFlags);
    [Obsolete ("deprecated")]
    public virtual int SaveLayerAlpha (RectF bounds, int alpha, SaveFlags saveFlags);
    [Obsolete ("deprecated")]
    public virtual int SaveLayerAlpha (float left, float top, float right, float bottom, int alpha, SaveFlags saveFlags);

Added methods:

public virtual bool ClipOutPath (Path path);
    public virtual bool ClipOutRect (Rect rect);
    public virtual bool ClipOutRect (RectF rect);
    public virtual bool ClipOutRect (int left, int top, int right, int bottom);
    public virtual bool ClipOutRect (float left, float top, float right, float bottom);

Type Changed: Android.Graphics.ColorMatrixColorFilter

Added method:

public virtual void GetColorMatrix (ColorMatrix colorMatrix);

Type Changed: Android.Graphics.Format

Added values:

    Rgba1010102 = 43,
    RgbaF16 = 22,

Type Changed: Android.Graphics.LightingColorFilter

Added properties:

public virtual int ColorAdd { get; }
    public virtual int ColorMultiply { get; }

Type Changed: Android.Graphics.Paint

Added property:

public virtual string FontVariationSettings { get; }

Added method:

public virtual bool SetFontVariationSettings (string fontVariationSettings);

Type Changed: Android.Graphics.Path

Added method:

public virtual float[] Approximate (float acceptableError);

Type Changed: Android.Graphics.SurfaceTexture

Added constructor:

public SurfaceTexture (bool singleBufferMode);

Added property:

public virtual bool IsReleased { get; }

New Type Android.Graphics.ColorSpace

public abstract class ColorSpace : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected ColorSpace (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // fields
    public static const int MaxId;
    public static const int MinId;
    // properties
    public virtual int ComponentCount { get; }
    public virtual int Id { get; }
    public static System.Collections.Generic.IList<float> IlluminantA { get; }
    public static System.Collections.Generic.IList<float> IlluminantB { get; }
    public static System.Collections.Generic.IList<float> IlluminantC { get; }
    public static System.Collections.Generic.IList<float> IlluminantD50 { get; }
    public static System.Collections.Generic.IList<float> IlluminantD55 { get; }
    public static System.Collections.Generic.IList<float> IlluminantD60 { get; }
    public static System.Collections.Generic.IList<float> IlluminantD65 { get; }
    public static System.Collections.Generic.IList<float> IlluminantD75 { get; }
    public static System.Collections.Generic.IList<float> IlluminantE { get; }
    public virtual bool IsSrgb { get; }
    public virtual bool IsWideGamut { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual string Name { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static ColorSpace Adapt (ColorSpace colorSpace, float[] whitePoint);
    public static ColorSpace Adapt (ColorSpace colorSpace, float[] whitePoint, ColorSpace.Adaptation adaptation);
    public static ColorSpace.Connector Connect (ColorSpace source);
    public static ColorSpace.Connector Connect (ColorSpace source, ColorSpace destination);
    public static ColorSpace.Connector Connect (ColorSpace source, ColorSpace.RenderIntent intent);
    public static ColorSpace.Connector Connect (ColorSpace source, ColorSpace destination, ColorSpace.RenderIntent intent);
    public virtual float[] FromXyz (float[] v);
    public virtual float[] FromXyz (float x, float y, float z);
    public static ColorSpace Get (ColorSpace.Named name);
    public virtual float GetMaxValue (int component);
    public virtual float GetMinValue (int component);
    public virtual ColorSpace.Model GetModel ();
    public static ColorSpace Match (float[] toXYZD50, ColorSpace.Rgb.TransferParameters function);
    public virtual float[] ToXyz (float[] v);
    public virtual float[] ToXyz (float r, float g, float b);

    // inner types
    public sealed class Adaptation : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
        // properties
        public static ColorSpace.Adaptation Bradford { get; }
        public static ColorSpace.Adaptation Ciecat02 { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        public static ColorSpace.Adaptation VonKries { get; }
        // methods
        public static ColorSpace.Adaptation ValueOf (string name);
        public static ColorSpace.Adaptation[] Values ();
    }
    public class Connector : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        protected ColorSpace (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public virtual ColorSpace Destination { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public virtual ColorSpace.RenderIntent RenderIntent { get; }
        public virtual ColorSpace Source { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual float[] Transform (float[] v);
        public virtual float[] Transform (float r, float g, float b);
    }
    public sealed class Model : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
        // properties
        public static ColorSpace.Model Cmyk { get; }
        public int ComponentCount { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public static ColorSpace.Model Lab { get; }
        public static ColorSpace.Model Rgb { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        public static ColorSpace.Model Xyz { get; }
        // methods
        public static ColorSpace.Model ValueOf (string name);
        public static ColorSpace.Model[] Values ();
    }
    public sealed class Named : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
        // properties
        public static ColorSpace.Named Aces { get; }
        public static ColorSpace.Named Acescg { get; }
        public static ColorSpace.Named AdobeRgb { get; }
        public static ColorSpace.Named Bt2020 { get; }
        public static ColorSpace.Named Bt709 { get; }
        public static ColorSpace.Named CieLab { get; }
        public static ColorSpace.Named CieXyz { get; }
        public static ColorSpace.Named DciP3 { get; }
        public static ColorSpace.Named DisplayP3 { get; }
        public static ColorSpace.Named ExtendedSrgb { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public static ColorSpace.Named LinearExtendedSrgb { get; }
        public static ColorSpace.Named LinearSrgb { get; }
        public static ColorSpace.Named Ntsc1953 { get; }
        public static ColorSpace.Named ProPhotoRgb { get; }
        public static ColorSpace.Named SmpteC { get; }
        public static ColorSpace.Named Srgb { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public static ColorSpace.Named ValueOf (string name);
        public static ColorSpace.Named[] Values ();
    }
    public sealed class RenderIntent : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
        // properties
        public static ColorSpace.RenderIntent Absolute { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public static ColorSpace.RenderIntent Perceptual { get; }
        public static ColorSpace.RenderIntent Relative { get; }
        public static ColorSpace.RenderIntent Saturation { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public static ColorSpace.RenderIntent ValueOf (string name);
        public static ColorSpace.RenderIntent[] Values ();
    }
    public class Rgb : Android.Graphics.ColorSpace, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        protected ColorSpace (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        public ColorSpace (string name, float[] toXYZ, ColorSpace.Rgb.TransferParameters function);
        public ColorSpace (string name, float[] toXYZ, double gamma);
        public ColorSpace (string name, float[] toXYZ, Java.Util.Functions.IDoubleUnaryOperator oetf, Java.Util.Functions.IDoubleUnaryOperator eotf);
        public ColorSpace (string name, float[] primaries, float[] whitePoint, ColorSpace.Rgb.TransferParameters function);
        public ColorSpace (string name, float[] primaries, float[] whitePoint, double gamma);
        public ColorSpace (string name, float[] primaries, float[] whitePoint, Java.Util.Functions.IDoubleUnaryOperator oetf, Java.Util.Functions.IDoubleUnaryOperator eotf, float min, float max);
        // properties
        public virtual Java.Util.Functions.IDoubleUnaryOperator Eotf { get; }
        public override bool IsWideGamut { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public virtual Java.Util.Functions.IDoubleUnaryOperator Oetf { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual float[] FromLinear (float[] v);
        public virtual float[] FromLinear (float r, float g, float b);
        public override float[] FromXyz (float[] v);
        public virtual float[] GetInverseTransform ();
        public virtual float[] GetInverseTransform (float[] inverseTransform);
        public override float GetMaxValue (int component);
        public override float GetMinValue (int component);
        public virtual float[] GetPrimaries ();
        public virtual float[] GetPrimaries (float[] primaries);
        public virtual ColorSpace.Rgb.TransferParameters GetTransferParameters ();
        public virtual float[] GetTransform ();
        public virtual float[] GetTransform (float[] transform);
        public virtual float[] GetWhitePoint ();
        public virtual float[] GetWhitePoint (float[] whitePoint);
        public virtual float[] ToLinear (float[] v);
        public virtual float[] ToLinear (float r, float g, float b);
        public override float[] ToXyz (float[] v);

        // inner types
        public class TransferParameters : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
            // constructors
            protected ColorSpace (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
            public ColorSpace (double a, double b, double c, double d, double g);
            public ColorSpace (double a, double b, double c, double d, double e, double f, double g);
            // properties
            public double A { get; set; }
            public double B { get; set; }
            public double C { get; set; }
            public double D { get; set; }
            public double E { get; set; }
            public double F { get; set; }
            public double G { get; set; }
            public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
            protected override IntPtr ThresholdClass { get; }
            protected override System.Type ThresholdType { get; }
        }
    }
}

Namespace Android.Graphics.Drawables

Type Changed: Android.Graphics.Drawables.Icon

Added method:

public static Icon CreateWithAdaptiveBitmap (Android.Graphics.Bitmap bits);

Type Changed: Android.Graphics.Drawables.InsetDrawable

Added constructors:

public InsetDrawable (Drawable drawable, float inset);
    public InsetDrawable (Drawable drawable, float insetLeftFraction, float insetTopFraction, float insetRightFraction, float insetBottomFraction);

New Type Android.Graphics.Drawables.AdaptiveIconDrawable

public class AdaptiveIconDrawable : Android.Graphics.Drawables.Drawable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public AdaptiveIconDrawable (Drawable backgroundDrawable, Drawable foregroundDrawable);
    protected AdaptiveIconDrawable (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual Drawable Background { get; }
    public static float ExtraInsetFraction { get; }
    public virtual Drawable Foreground { get; }
    public virtual Android.Graphics.Path IconMask { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public override int Opacity { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public override void Draw (Android.Graphics.Canvas canvas);
    public virtual void InvalidateDrawable (Drawable who);
    public virtual void ScheduleDrawable (Drawable who, Java.Lang.IRunnable what, long when);
    public override void SetAlpha (int alpha);
    public override void SetColorFilter (Android.Graphics.ColorFilter colorFilter);
    public virtual void SetOpacity (int opacity);
    public virtual void UnscheduleDrawable (Drawable who, Java.Lang.IRunnable what);
}

Namespace Android.Graphics.Drawables.Shapes

Type Changed: Android.Graphics.Drawables.Shapes.ArcShape

Added properties:

public float StartAngle { get; }
    public float SweepAngle { get; }

Namespace Android.Hardware

Type Changed: Android.Hardware.Sensor

Added fields:

public static const string StringTypeAccelerometerUncalibrated = "android.sensor.accelerometer_uncalibrated";
    public static const string StringTypeLowLatencyOffbodyDetect = "android.sensor.low_latency_offbody_detect";

Added property:

public virtual SensorDirectRateLevel HighestDirectReportRateLevel { get; }

Added method:

public virtual bool IsDirectChannelTypeSupported (SensorDirectChannelType sharedMemType);

Type Changed: Android.Hardware.SensorManager

Added methods:

public virtual SensorDirectChannel CreateDirectChannel (HardwareBuffer mem);
    public virtual SensorDirectChannel CreateDirectChannel (Android.OS.MemoryFile mem);

Type Changed: Android.Hardware.SensorType

Added values:

    AccelerometerUncalibrated = 35,
    LowLatencyOffbodyDetect = 34,

New Type Android.Hardware.HardwareBuffer

public sealed class HardwareBuffer : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable, System.IDisposable {
    // fields
    public static const long UsageCpuReadOften;
    public static const long UsageCpuReadRarely;
    public static const long UsageCpuWriteOften;
    public static const long UsageCpuWriteRarely;
    public static const long UsageGpuColorOutput;
    public static const long UsageGpuDataBuffer;
    public static const long UsageGpuSampledImage;
    public static const long UsageProtectedContent;
    public static const long UsageSensorDirectData;
    public static const long UsageVideoEncode;
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public HardwareBufferFormat Format { get; }
    public int Height { get; }
    public bool IsClosed { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public int Layers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public int Width { get; }
    // methods
    public virtual void Close ();
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Hardware.HardwareBufferFormat

[Serializable]
public enum HardwareBufferFormat {
    Blob = 33,
    Rgb565 = 4,
    Rgb888 = 3,
    Rgba1010102 = 43,
    Rgba8888 = 1,
    RgbaFp16 = 22,
    Rgbx8888 = 2,
}

New Type Android.Hardware.SensorDirectChannel

public sealed class SensorDirectChannel : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ICloseable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IChannel, System.IDisposable {
    // properties
    public virtual bool IsOpen { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void Close ();
    public int Configure (Sensor sensor, SensorDirectRateLevel rateLevel);
}

New Type Android.Hardware.SensorDirectChannelType

[Serializable]
public enum SensorDirectChannelType {
    HardwareBuffer = 2,
    MemoryFile = 1,
}

New Type Android.Hardware.SensorDirectRateLevel

[Serializable]
public enum SensorDirectRateLevel {
    Fast = 2,
    Normal = 1,
    Stop = 0,
    VeryFast = 3,
}

Namespace Android.Hardware.Camera2

Type Changed: Android.Hardware.Camera2.CameraCaptureSession

Added method:

public virtual void FinalizeOutputConfigurations (System.Collections.Generic.IList<Params.OutputConfiguration> outputConfigs);

Type Changed: Android.Hardware.Camera2.CameraCaptureSession.StateCallback

Added method:

public virtual void OnCaptureQueueEmpty (CameraCaptureSession session);

Type Changed: Android.Hardware.Camera2.CaptureRequest

Added property:

public static CaptureRequest.Key ControlEnableZsl { get; }

Type Changed: Android.Hardware.Camera2.CaptureResult

Added property:

public static CaptureResult.Key ControlEnableZsl { get; }

Namespace Android.Hardware.Camera2.Params

Type Changed: Android.Hardware.Camera2.Params.OutputConfiguration

Added property:

public System.Collections.Generic.IList<Android.Views.Surface> Surfaces { get; }

Added methods:

public void AddSurface (Android.Views.Surface surface);
    public void EnableSurfaceSharing ();

Namespace Android.Hardware.Usb

Type Changed: Android.Hardware.Usb.UsbDeviceConnection

Added methods:

public virtual UsbRequest RequestWait (long timeout);
    public System.Threading.Tasks.Task<UsbRequest> RequestWaitAsync (long timeout);

Type Changed: Android.Hardware.Usb.UsbRequest

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual bool Queue (Java.Nio.ByteBuffer buffer, int length);

Added method:

public virtual bool Queue (Java.Nio.ByteBuffer buffer);

Namespace Android.Icu.Lang

Type Changed: Android.Icu.Lang.UCharacter

Type Changed: Android.Icu.Lang.UCharacter.GraphemeClusterBreak

Added fields:

public static const int EBase;
    public static const int EBaseGaz;
    public static const int EModifier;
    public static const int GlueAfterZwj;
    public static const int Zwj;

Type Changed: Android.Icu.Lang.UCharacter.JoiningGroup

Added fields:

public static const int AfricanFeh;
    public static const int AfricanNoon;
    public static const int AfricanQaf;

Type Changed: Android.Icu.Lang.UCharacter.LineBreak

Added fields:

public static const int EBase;
    public static const int EModifier;
    public static const int Zwj;

Type Changed: Android.Icu.Lang.UCharacter.UnicodeBlock

Added fields:

public static const int AdlamId;
    public static const int BhaiksukiId;
    public static const int CyrillicExtendedCId;
    public static const int GlagoliticSupplementId;
    public static const int IdeographicSymbolsAndPunctuationId;
    public static const int MarchenId;
    public static const int MongolianSupplementId;
    public static const int NewaId;
    public static const int OsageId;
    public static const int TangutComponentsId;
    public static const int TangutId;

Added properties:

public static UCharacter.UnicodeBlock Adlam { get; }
    public static UCharacter.UnicodeBlock Bhaiksuki { get; }
    public static UCharacter.UnicodeBlock CyrillicExtendedC { get; }
    public static UCharacter.UnicodeBlock GlagoliticSupplement { get; }
    public static UCharacter.UnicodeBlock IdeographicSymbolsAndPunctuation { get; }
    public static UCharacter.UnicodeBlock Marchen { get; }
    public static UCharacter.UnicodeBlock MongolianSupplement { get; }
    public static UCharacter.UnicodeBlock Newa { get; }
    public static UCharacter.UnicodeBlock Osage { get; }
    public static UCharacter.UnicodeBlock Tangut { get; }
    public static UCharacter.UnicodeBlock TangutComponents { get; }

Type Changed: Android.Icu.Lang.UCharacter.WordBreak

Added fields:

public static const int EBase;
    public static const int EBaseGaz;
    public static const int EModifier;
    public static const int GlueAfterZwj;
    public static const int Zwj;

Type Changed: Android.Icu.Lang.UScript

Added fields:

public static const int Adlam;
    public static const int Bhaiksuki;
    public static const int HanWithBopomofo;
    public static const int Jamo;
    public static const int Marchen;
    public static const int Newa;
    public static const int Osage;
    public static const int SymbolsEmoji;

Namespace Android.Icu.Text

Type Changed: Android.Icu.Text.DateFormat

Type Changed: Android.Icu.Text.DateFormat.BooleanAttribute

Added properties:

public static DateFormat.BooleanAttribute ParseMultiplePatternsForMatch { get; }
    public static DateFormat.BooleanAttribute ParsePartialLiteralMatch { get; }

Type Changed: Android.Icu.Text.LocaleDisplayNames

Added methods:

public virtual System.Collections.Generic.IList<LocaleDisplayNames.UiListItem> GetUiList (System.Collections.Generic.ICollection<Android.Icu.Util.ULocale> localeSet, bool inSelf, Java.Util.IComparator collator);
    public virtual System.Collections.Generic.IList<LocaleDisplayNames.UiListItem> GetUiListCompareWholeItems (System.Collections.Generic.ICollection<Android.Icu.Util.ULocale> localeSet, Java.Util.IComparator comparator);

New Type Android.Icu.Text.UiListItem

public class UiListItem : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected LocaleDisplayNames (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    public LocaleDisplayNames (Android.Icu.Util.ULocale minimized, Android.Icu.Util.ULocale modified, string nameInDisplayLocale, string nameInSelf);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public Android.Icu.Util.ULocale Minimized { get; set; }
    public Android.Icu.Util.ULocale Modified { get; set; }
    public string NameInDisplayLocale { get; set; }
    public string NameInSelf { get; set; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static Java.Util.IComparator GetComparator (Java.Util.IComparator comparator, bool inSelf);
}

Type Changed: Android.Icu.Text.MeasureFormat

Added method:

public virtual Java.Lang.StringBuilder FormatMeasurePerUnit (Android.Icu.Util.Measure measure, Android.Icu.Util.MeasureUnit perUnit, Java.Lang.StringBuilder appendTo, Java.Text.FieldPosition pos);

Type Changed: Android.Icu.Text.NumberFormat

Added field:

[Obsolete ("This constant will be removed in the future version. Use Android.Icu.Text.NumberFormatStyles enum directly instead of this field.")]
    public static const NumberFormatStyles Standardcurrencystyle;

Type Changed: Android.Icu.Text.NumberFormatStyles

Added value:

    Standardcurrency = 9,

New Type Android.Icu.Text.ListFormatter

public sealed class ListFormatter : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static ListFormatter Instance { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public string Format (Java.Lang.Object[] items);
    public string Format (System.Collections.Generic.ICollection<object> items);
    public static ListFormatter GetInstance (Android.Icu.Util.ULocale locale);
    public static ListFormatter GetInstance (Java.Util.Locale locale);
    public string GetPatternForNumItems (int count);
}

New Type Android.Icu.Text.ScientificNumberFormatter

public sealed class ScientificNumberFormatter : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public string Format (Java.Lang.Object number);
    public static ScientificNumberFormatter GetMarkupInstance (DecimalFormat df, string beginMarkup, string endMarkup);
    public static ScientificNumberFormatter GetMarkupInstance (Android.Icu.Util.ULocale locale, string beginMarkup, string endMarkup);
    public static ScientificNumberFormatter GetSuperscriptInstance (DecimalFormat df);
    public static ScientificNumberFormatter GetSuperscriptInstance (Android.Icu.Util.ULocale locale);
}

Namespace Android.Icu.Util

Type Changed: Android.Icu.Util.Calendar

Obsoleted fields:

[Obsolete ("deprecated")]
    protected static const int BaseFieldCount;
    [Obsolete ("deprecated")]
    protected static const int MaxFieldCount;

Obsoleted methods:

[Obsolete ("deprecated")]
    protected virtual int ComputeMillisInDay ();
    [Obsolete ("deprecated")]
    protected virtual int ComputeZoneOffset (long millis, int millisInDay);

Type Changed: Android.Icu.Util.MeasureUnit

Added properties:

public static MeasureUnit Century { get; }
    public static MeasureUnit CupMetric { get; }
    public static MeasureUnit GenericTemperature { get; }
    public static MeasureUnit Knot { get; }
    public static MeasureUnit LiterPer100kilometers { get; }
    public static MeasureUnit MileScandinavian { get; }
    public static MeasureUnit PintMetric { get; }
    public static MeasureUnit RevolutionAngle { get; }

Type Changed: Android.Icu.Util.TimeZone

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.TimeZoneType enum directly instead of this field.")]
    public static const TimeZoneType TimezoneIcu;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.TimeZoneType enum directly instead of this field.")]
    public static const TimeZoneType TimezoneJdk;

Type Changed: Android.Icu.Util.VersionInfo

Added property:

public static VersionInfo Unicode90 { get; }

New Type Android.Icu.Util.EthiopicCalendar

public sealed class EthiopicCalendar : Android.Icu.Util.CECalendar, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.ICloneable, Java.Lang.IComparable, System.IDisposable {
    // constructors
    public EthiopicCalendar ();
    public EthiopicCalendar (TimeZone zone);
    public EthiopicCalendar (ULocale locale);
    public EthiopicCalendar (Java.Util.Date date);
    public EthiopicCalendar (Java.Util.Locale aLocale);
    public EthiopicCalendar (TimeZone zone, ULocale locale);
    public EthiopicCalendar (TimeZone zone, Java.Util.Locale aLocale);
    public EthiopicCalendar (int year, int month, int date);
    public EthiopicCalendar (int year, int month, int date, int hour, int minute, int second);
    // fields
    public static const int Genbot;
    public static const int Hamle;
    public static const int Hedar;
    public static const int Megabit;
    public static const int Meskerem;
    public static const int Miazia;
    public static const int Nehasse;
    public static const int Pagumen;
    public static const int Sene;
    public static const int Tahsas;
    public static const int Tekemt;
    public static const int Ter;
    public static const int Yekatit;
    // properties
    public bool AmeteAlemEra { get; set; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods

    [Obsolete ("deprecated")]
    protected override int HandleGetExtendedYear ();
}

New Type Android.Icu.Util.TimeZoneType

[Serializable]
public enum TimeZoneType {
    Icu = 0,
    Jdk = 1,
}

New Type Android.Icu.Util.UniversalTimeScale

public sealed class UniversalTimeScale : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType Db2Time;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType DotnetDateTime;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleValue enum directly instead of this field.")]
    public static const UniversalTimeScaleValue EpochOffsetPlus1Value;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleValue enum directly instead of this field.")]
    public static const UniversalTimeScaleValue EpochOffsetValue;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType ExcelTime;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleValue enum directly instead of this field.")]
    public static const UniversalTimeScaleValue FromMaxValue;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleValue enum directly instead of this field.")]
    public static const UniversalTimeScaleValue FromMinValue;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType Icu4cTime;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType JavaTime;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType MacOldTime;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType MacTime;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType MaxScale;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleValue enum directly instead of this field.")]
    public static const UniversalTimeScaleValue ToMaxValue;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleValue enum directly instead of this field.")]
    public static const UniversalTimeScaleValue ToMinValue;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleValue enum directly instead of this field.")]
    public static const UniversalTimeScaleValue UnitsValue;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType UnixMicrosecondsTime;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType UnixTime;

    [Obsolete ("This constant will be removed in the future version. Use Android.Icu.Util.UniversalTimeScaleType enum directly instead of this field.")]
    public static const UniversalTimeScaleType WindowsFileTime;
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static Android.Icu.Math.BigDecimal BigDecimalFrom (Android.Icu.Math.BigDecimal otherTime, UniversalTimeScaleType timeScale);
    public static Android.Icu.Math.BigDecimal BigDecimalFrom (double otherTime, UniversalTimeScaleType timeScale);
    public static Android.Icu.Math.BigDecimal BigDecimalFrom (long otherTime, UniversalTimeScaleType timeScale);
    public static long From (long otherTime, UniversalTimeScaleType timeScale);
    public static long GetTimeScaleValue (UniversalTimeScaleType scale, UniversalTimeScaleValue value);
    public static Android.Icu.Math.BigDecimal ToBigDecimal (Android.Icu.Math.BigDecimal universalTime, UniversalTimeScaleType timeScale);
    public static Android.Icu.Math.BigDecimal ToBigDecimal (long universalTime, UniversalTimeScaleType timeScale);
    public static long ToLong (long universalTime, UniversalTimeScaleType timeScale);
}

New Type Android.Icu.Util.UniversalTimeScaleType

[Serializable]
public enum UniversalTimeScaleType {
    Db2Time = 8,
    DotnetDateTime = 4,
    ExcelTime = 7,
    Icu4cTime = 2,
    JavaTime = 0,
    MacOldTime = 5,
    MacTime = 6,
    MaxScale = 10,
    UnixMicrosecondsTime = 9,
    UnixTime = 1,
    WindowsFileTime = 3,
}

New Type Android.Icu.Util.UniversalTimeScaleValue

[Serializable]
public enum UniversalTimeScaleValue {
    EpochOffset = 1,
    EpochOffsetPlus1 = 6,
    FromMax = 3,
    FromMin = 2,
    ToMax = 5,
    ToMin = 4,
    Units = 0,
}

Namespace Android.Locations

Type Changed: Android.Locations.GnssMeasurement

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.Locations.GnssState enum directly instead of this field.")]
    public static const GnssState StateGloTodKnown;

    [Obsolete ("This constant will be removed in the future version. Use Android.Locations.GnssState enum directly instead of this field.")]
    public static const GnssState StateTowKnown;

Added properties:

public double AutomaticGainControlLevelDb { get; }
    public bool HasAutomaticGainControlLevelDb { get; }

Type Changed: Android.Locations.GnssState

Added values:

    GloTodKnown = 32768,
    TowKnown = 16384,

Type Changed: Android.Locations.GnssStatus

Added methods:

public float GetCarrierFrequencyHz (int satIndex);
    public bool HasCarrierFrequencyHz (int satIndex);

Type Changed: Android.Locations.Location

Added properties:

public virtual float BearingAccuracyDegrees { get; set; }
    public virtual bool HasBearingAccuracy { get; }
    public virtual bool HasSpeedAccuracy { get; }
    public virtual bool HasVerticalAccuracy { get; }
    public virtual float SpeedAccuracyMetersPerSecond { get; set; }
    public virtual float VerticalAccuracyMeters { get; set; }

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void RemoveAccuracy ();
    [Obsolete ("deprecated")]
    public virtual void RemoveAltitude ();
    [Obsolete ("deprecated")]
    public virtual void RemoveBearing ();
    [Obsolete ("deprecated")]
    public virtual void RemoveSpeed ();

Namespace Android.Media

Type Changed: Android.Media.AudioAttributes

Added property:

public Stream VolumeControlStream { get; }

Type Changed: Android.Media.AudioDeviceType

Added value:

    UsbHeadset = 22,

Type Changed: Android.Media.AudioFocus

Added value:

    None = 0,

Type Changed: Android.Media.AudioFocusRequest

Added value:

    Delayed = 2,

Type Changed: Android.Media.AudioManager

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.Media.AudioFocus enum directly instead of this field.")]
    public static const AudioFocus AudiofocusNone;

    [Obsolete ("This constant will be removed in the future version. Use Android.Media.AudioFocusRequest enum directly instead of this field.")]
    public static const AudioFocusRequest AudiofocusRequestDelayed;
    public static const int StreamAccessibility;

Obsoleted properties:

[Obsolete ("deprecated")]
    public virtual bool BluetoothA2dpOn { get; set; }

Added property:

public virtual System.Collections.Generic.IList<AudioPlaybackConfiguration> ActivePlaybackConfigurations { get; }

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual AudioFocusRequest AbandonAudioFocus (AudioManager.IOnAudioFocusChangeListener l);
    [Obsolete ("deprecated")]
    public virtual AudioFocusRequest RequestAudioFocus (AudioManager.IOnAudioFocusChangeListener l, Stream streamType, AudioFocus durationHint);

Added methods:

public virtual AudioFocusRequest AbandonAudioFocusRequest (AudioFocusRequestClass focusRequest);
    public virtual void RegisterAudioPlaybackCallback (AudioManager.AudioPlaybackCallback cb, Android.OS.Handler handler);
    public virtual AudioFocusRequest RequestAudioFocus (AudioFocusRequestClass focusRequest);
    public virtual void UnregisterAudioPlaybackCallback (AudioManager.AudioPlaybackCallback cb);

New Type Android.Media.AudioPlaybackCallback

public abstract class AudioPlaybackCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public AudioManager ();
    protected AudioManager (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void OnPlaybackConfigChanged (System.Collections.Generic.IList<AudioPlaybackConfiguration> configs);
}

Type Changed: Android.Media.AudioTrack

Added interface:

IVolumeAutomation

Added property:

public virtual AudioTrackPerformanceMode PerformanceMode { get; }

Added method:

public virtual VolumeShaper CreateVolumeShaper (VolumeShaper.Configuration configuration);

Type Changed: Android.Media.AudioTrack.Builder

Added method:

public virtual AudioTrack.Builder SetPerformanceMode (AudioTrackPerformanceMode performanceMode);

Type Changed: Android.Media.AudioUsageKind

Added value:

    Assistant = 16,

Type Changed: Android.Media.ExifInterface

Added fields:

public static const string TagDefaultCropSize = "DefaultCropSize";
    public static const string TagDngVersion = "DNGVersion";
    public static const string TagNewSubfileType = "NewSubfileType";
    public static const string TagOrfAspectFrame = "AspectFrame";
    public static const string TagOrfPreviewImageLength = "PreviewImageLength";
    public static const string TagOrfPreviewImageStart = "PreviewImageStart";
    public static const string TagOrfThumbnailImage = "ThumbnailImage";
    public static const string TagRw2Iso = "ISO";
    public static const string TagRw2JpgFromRaw = "JpgFromRaw";
    public static const string TagRw2SensorBottomBorder = "SensorBottomBorder";
    public static const string TagRw2SensorLeftBorder = "SensorLeftBorder";
    public static const string TagRw2SensorRightBorder = "SensorRightBorder";
    public static const string TagRw2SensorTopBorder = "SensorTopBorder";
    public static const string TagSubfileType = "SubfileType";

Added properties:

public virtual bool IsThumbnailCompressed { get; }
    public virtual Android.Graphics.Bitmap ThumbnailBitmap { get; }

Added method:

public virtual byte[] GetThumbnailBytes ();

Type Changed: Android.Media.MediaCodec

Added field:

[Obsolete ("This constant will be removed in the future version. Use Android.Media.MediaCodecBufferFlags enum directly instead of this field.")]
    public static const MediaCodecBufferFlags BufferFlagPartialFrame;

Added property:

public Android.OS.PersistableBundle Metrics { get; }

Added method:

public void Configure (MediaFormat format, Android.Views.Surface surface, MediaCodecConfigFlags flags, MediaDescrambler descrambler);

New Type Android.Media.MetricsConstants

public sealed class MetricsConstants : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const string Codec = "android.media.mediacodec.codec";
    public static const string Encoder = "android.media.mediacodec.encoder";
    public static const string Height = "android.media.mediacodec.height";
    public static const string MimeType = "android.media.mediacodec.mime";
    public static const string Mode = "android.media.mediacodec.mode";
    public static const string ModeAudio = "audio";
    public static const string ModeVideo = "video";
    public static const string Rotation = "android.media.mediacodec.rotation";
    public static const string Secure = "android.media.mediacodec.secure";
    public static const string Width = "android.media.mediacodec.width";
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

Type Changed: Android.Media.MediaCodecBufferFlags

Added value:

    PartialFrame = 8,

Type Changed: Android.Media.MediaCodecInfo

Type Changed: Android.Media.MediaCodecInfo.CodecCapabilities

Added field:

public static const string FEATUREPartialFrame = "partial-frame";

Type Changed: Android.Media.MediaCodecInfo.CodecProfileLevel

Added field:

[Obsolete ("This constant will be removed in the future version. Use Android.Media.MediaCodecProfileType enum directly instead of this field.")]
    public static const MediaCodecProfileType AACObjectERScalable;

Type Changed: Android.Media.MediaCodecProfileType

Added value:

    Aacobjecterscalable = 20,

Type Changed: Android.Media.MediaDescription

Added fields:

public static const long BtFolderTypeAlbums;
    public static const long BtFolderTypeArtists;
    public static const long BtFolderTypeGenres;
    public static const long BtFolderTypeMixed;
    public static const long BtFolderTypePlaylists;
    public static const long BtFolderTypeTitles;
    public static const long BtFolderTypeYears;
    public static const string ExtraBtFolderType = "android.media.extra.BT_FOLDER_TYPE";

Type Changed: Android.Media.MediaExtractor

Added field:

[Obsolete ("This constant will be removed in the future version. Use Android.Media.MediaExtractorSampleFlags enum directly instead of this field.")]
    public static const MediaExtractorSampleFlags SampleFlagPartialFrame;

Added property:

public Android.OS.PersistableBundle Metrics { get; }

Added methods:

public MediaExtractor.CasInfo GetCasInfo (int index);
    public void SetMediaCas (MediaCas mediaCas);

Type Changed: Android.Media.MediaExtractorSampleFlags

Added value:

    PartialFrame = 4,

Type Changed: Android.Media.MediaFormat

Added fields:

public static const string KeyLatency = "latency";
    public static const string MimetypeAudioScrambled = "audio/scrambled";
    public static const string MimetypeVideoScrambled = "video/scrambled";

Type Changed: Android.Media.MediaInfo

Added values:

    AudioNotPlaying = 804,
    VideoNotPlaying = 805,

Type Changed: Android.Media.MediaMetadata

Added fields:

public static const string MetadataKeyBtFolderType = "android.media.metadata.BT_FOLDER_TYPE";
    public static const string MetadataKeyMediaUri = "android.media.metadata.MEDIA_URI";

Type Changed: Android.Media.MediaMuxer

Added constructor:

public MediaMuxer (Java.IO.FileDescriptor fd, MuxerOutputType format);

Type Changed: Android.Media.MediaMuxer.OutputFormat

Added field:

[Obsolete ("This constant will be removed in the future version. Use Android.Media.MuxerOutputType enum directly instead of this field.")]
    public static const MuxerOutputType MuxerOutput3gpp;

Type Changed: Android.Media.MediaPlayer

Added interface:

IVolumeAutomation

Added property:

public virtual Android.OS.PersistableBundle Metrics { get; }

Added events:

public event System.EventHandler<MediaPlayer.DrmInfoEventArgs> DrmInfoEvent;
    public event System.EventHandler<MediaPlayer.DrmPreparedEventArgs> DrmPrepared;

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void SetAudioStreamType (Stream streamtype);

Added methods:

public virtual VolumeShaper CreateVolumeShaper (VolumeShaper.Configuration configuration);
    public virtual MediaPlayer.DrmInfo GetDrmInfo ();
    public virtual string GetDrmPropertyString (string propertyName);
    public virtual MediaDrm.KeyRequest GetKeyRequest (byte[] keySetId, byte[] initData, string mimeType, MediaDrmKeyType keyType, System.Collections.Generic.IDictionary<System.String,System.String> optionalParameters);
    public virtual void PrepareDrm (Java.Util.UUID uuid);
    public virtual byte[] ProvideKeyResponse (byte[] keySetId, byte[] response);
    public virtual void ReleaseDrm ();
    public virtual void RestoreKeys (byte[] keySetId);
    public virtual void SeekTo (long msec, MediaPlayerSeekMode mode);
    public virtual void SetDataSource (Android.Content.Context context, Android.Net.Uri uri, System.Collections.Generic.IDictionary<System.String,System.String> headers, System.Collections.Generic.IList<Java.Net.HttpCookie> cookies);
    public System.Threading.Tasks.Task SetDataSourceAsync (Android.Content.Context context, Android.Net.Uri uri, System.Collections.Generic.IDictionary<System.String,System.String> headers, System.Collections.Generic.IList<Java.Net.HttpCookie> cookies);
    public virtual void SetDrmPropertyString (string propertyName, string value);
    public virtual void SetOnDrmConfigHelper (MediaPlayer.IOnDrmConfigHelper listener);
    public virtual void SetOnDrmInfoListener (MediaPlayer.IOnDrmInfoListener listener);
    public virtual void SetOnDrmInfoListener (MediaPlayer.IOnDrmInfoListener listener, Android.OS.Handler handler);
    public virtual void SetOnDrmPreparedListener (MediaPlayer.IOnDrmPreparedListener listener);
    public virtual void SetOnDrmPreparedListener (MediaPlayer.IOnDrmPreparedListener listener, Android.OS.Handler handler);

New Type Android.Media.DrmInfo

public sealed class DrmInfo : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public System.Collections.Generic.IDictionary<Java.Util.UUID,System.Byte[]> Pssh { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public Java.Util.UUID[] GetSupportedSchemes ();
}

New Type Android.Media.DrmInfoEventArgs

public class DrmInfoEventArgs : System.EventArgs {
    // constructors
    public MediaPlayer (MediaPlayer mp, MediaPlayer.DrmInfo drmInfo);
    // properties
    public MediaPlayer.DrmInfo DrmInfo { get; }
    public MediaPlayer Mp { get; }
}

New Type Android.Media.DrmPreparedEventArgs

public class DrmPreparedEventArgs : System.EventArgs {
    // constructors
    public MediaPlayer (MediaPlayer mp, PrepareDrmStatus status);
    // properties
    public MediaPlayer Mp { get; }
    public PrepareDrmStatus Status { get; }
}

New Type Android.Media.IOnDrmConfigHelper

public interface IOnDrmConfigHelper : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual void OnDrmConfig (MediaPlayer mp);
}

New Type Android.Media.IOnDrmInfoListener

public interface IOnDrmInfoListener : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual void OnDrmInfo (MediaPlayer mp, MediaPlayer.DrmInfo drmInfo);
}

New Type Android.Media.IOnDrmPreparedListener

public interface IOnDrmPreparedListener : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual void OnDrmPrepared (MediaPlayer mp, PrepareDrmStatus status);
}

New Type Android.Media.MetricsConstants

public sealed class MetricsConstants : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const string CodecAudio = "android.media.mediaplayer.audio.codec";
    public static const string CodecVideo = "android.media.mediaplayer.video.codec";
    public static const string Duration = "android.media.mediaplayer.durationMs";
    public static const string ErrorCode = "android.media.mediaplayer.errcode";
    public static const string Errors = "android.media.mediaplayer.err";
    public static const string Frames = "android.media.mediaplayer.frames";
    public static const string FramesDropped = "android.media.mediaplayer.dropped";
    public static const string Height = "android.media.mediaplayer.height";
    public static const string MimeTypeAudio = "android.media.mediaplayer.audio.mime";
    public static const string MimeTypeVideo = "android.media.mediaplayer.video.mime";
    public static const string Playing = "android.media.mediaplayer.playingMs";
    public static const string Width = "android.media.mediaplayer.width";
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Android.Media.NoDrmSchemeException

public sealed class NoDrmSchemeException : Android.Media.MediaDrmException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public MediaPlayer (string detailMessage);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Android.Media.ProvisioningNetworkErrorException

public sealed class ProvisioningNetworkErrorException : Android.Media.MediaDrmException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public MediaPlayer (string detailMessage);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Android.Media.ProvisioningServerErrorException

public sealed class ProvisioningServerErrorException : Android.Media.MediaDrmException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public MediaPlayer (string detailMessage);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

Type Changed: Android.Media.MediaRecorder

Added property:

public virtual Android.OS.PersistableBundle Metrics { get; }

Added methods:

public virtual void SetNextOutputFile (Java.IO.File file);
    public virtual void SetNextOutputFile (Java.IO.FileDescriptor fd);
    public virtual void SetOutputFile (Java.IO.File file);
    public virtual void SetVideoEncodingProfileLevel (MediaCodecProfileType profile, int level);

New Type Android.Media.MetricsConstants

public sealed class MetricsConstants : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const string AudioBitrate = "android.media.mediarecorder.audio-bitrate";
    public static const string AudioChannels = "android.media.mediarecorder.audio-channels";
    public static const string AudioSamplerate = "android.media.mediarecorder.audio-samplerate";
    public static const string AudioTimescale = "android.media.mediarecorder.audio-timescale";
    public static const string CaptureFps = "android.media.mediarecorder.capture-fps";
    public static const string CaptureFpsEnable = "android.media.mediarecorder.capture-fpsenable";
    public static const string Framerate = "android.media.mediarecorder.frame-rate";
    public static const string Height = "android.media.mediarecorder.height";
    public static const string MovieTimescale = "android.media.mediarecorder.movie-timescale";
    public static const string Rotation = "android.media.mediarecorder.rotation";
    public static const string VideoBitrate = "android.media.mediarecorder.video-bitrate";
    public static const string VideoIframeInterval = "android.media.mediarecorder.video-iframe-interval";
    public static const string VideoLevel = "android.media.mediarecorder.video-encoder-level";
    public static const string VideoProfile = "android.media.mediarecorder.video-encoder-profile";
    public static const string VideoTimescale = "android.media.mediarecorder.video-timescale";
    public static const string Width = "android.media.mediarecorder.width";
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

Type Changed: Android.Media.MediaRecorderInfo

Added values:

    MaxFilesizeApproaching = 802,
    NextOutputFileStarted = 803,

Type Changed: Android.Media.MuxerOutputType

Added value:

    M3gpp = 2,

Type Changed: Android.Media.OutputFormat

Added value:

    Mpeg2Ts = 8,

New Type Android.Media.AudioFocusRequestClass

public sealed class AudioFocusRequestClass : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public AudioAttributes AudioAttributes { get; }
    public AudioFocus FocusGain { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public bool AcceptsDelayedFocusGain ();
    public bool WillPauseWhenDucked ();

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public AudioFocusRequestClass (AudioFocus focusGain);
        public AudioFocusRequestClass (AudioFocusRequestClass requestToCopy);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public AudioFocusRequestClass Build ();
        public AudioFocusRequestClass.Builder SetAcceptsDelayedFocusGain (bool acceptsDelayedFocusGain);
        public AudioFocusRequestClass.Builder SetAudioAttributes (AudioAttributes attributes);
        public AudioFocusRequestClass.Builder SetFocusGain (AudioFocus focusGain);
        public AudioFocusRequestClass.Builder SetOnAudioFocusChangeListener (AudioManager.IOnAudioFocusChangeListener listener);
        public AudioFocusRequestClass.Builder SetOnAudioFocusChangeListener (AudioManager.IOnAudioFocusChangeListener listener, Android.OS.Handler handler);
        public AudioFocusRequestClass.Builder SetWillPauseWhenDucked (bool pauseOnDuck);
    }
}

New Type Android.Media.AudioPlaybackConfiguration

public sealed class AudioPlaybackConfiguration : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public AudioAttributes AudioAttributes { get; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Media.AudioTrackPerformanceMode

[Serializable]
public enum AudioTrackPerformanceMode {
    LowLatency = 1,
    None = 0,
    PowerSaving = 2,
}

New Type Android.Media.IVolumeAutomation

public interface IVolumeAutomation : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual VolumeShaper CreateVolumeShaper (VolumeShaper.Configuration configuration);
}

New Type Android.Media.MediaCas

public sealed class MediaCas : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable, System.IDisposable {
    // constructors
    public MediaCas (int CA_system_id);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void Close ();
    public static MediaCas.PluginDescriptor[] EnumeratePlugins ();
    public static bool IsSystemIdSupported (int CA_system_id);
    public MediaCas.Session OpenSession ();
    public void ProcessEmm (byte[] data);
    public void ProcessEmm (byte[] data, int offset, int length);
    public void Provision (string provisionString);
    public void RefreshEntitlements (int refreshType, byte[] refreshData);
    public void SendEvent (int e, int arg, byte[] data);
    public void SetEventListener (MediaCas.IEventListener listener, Android.OS.Handler handler);
    public void SetPrivateData (byte[] data);

    // inner types
    public interface IEventListener : Android.Runtime.IJavaObject, System.IDisposable {
        // methods
        public virtual void OnEvent (MediaCas mediaCas, int e, int arg, byte[] data);
    }
    public class MediaCasEventArgs : System.EventArgs {
        // constructors
        public MediaCas (MediaCas mediaCas, int e, int arg, byte[] data);
        // properties
        public int Arg { get; }
        public byte[] Data { get; }
        public int Event { get; }
        public MediaCas MediaCas { get; }
    }
    public class PluginDescriptor : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        protected MediaCas (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public virtual string Name { get; }
        public virtual int SystemId { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
    }
    public sealed class Session : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable, System.IDisposable {
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual void Close ();
        public void ProcessEcm (byte[] data);
        public void ProcessEcm (byte[] data, int offset, int length);
        public void SetPrivateData (byte[] data);
    }
}

New Type Android.Media.MediaCasException

public class MediaCasException : Java.Lang.Exception, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    protected MediaCasException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }

    // inner types
    public sealed class DeniedByServerException : Android.Media.MediaCasException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
    }
    public sealed class NotProvisionedException : Android.Media.MediaCasException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
    }
    public sealed class ResourceBusyException : Android.Media.MediaCasException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
    }
    public sealed class UnsupportedCasException : Android.Media.MediaCasException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
    }
}

New Type Android.Media.MediaCasStateException

public class MediaCasStateException : Java.Lang.IllegalStateException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    protected MediaCasStateException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual string DiagnosticInfo { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Android.Media.MediaDescrambler

public sealed class MediaDescrambler : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable, System.IDisposable {
    // constructors
    public MediaDescrambler (int CA_system_id);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void Close ();
    public int Descramble (Java.Nio.ByteBuffer srcBuf, Java.Nio.ByteBuffer dstBuf, MediaCodec.CryptoInfo cryptoInfo);
    public bool RequiresSecureDecoderComponent (string mime);
    public void SetMediaCasSession (MediaCas.Session session);
}

New Type Android.Media.MediaPlayerSeekMode

[Serializable]
public enum MediaPlayerSeekMode {
    Closest = 3,
    ClosestSync = 2,
    NextSync = 1,
    PreviousSync = 0,
}

New Type Android.Media.PrepareDrmStatus

[Serializable]
public enum PrepareDrmStatus {
    PreparationError = 3,
    ProvisioningNetworkError = 1,
    ProvisioningServerError = 2,
    Success = 0,
}

New Type Android.Media.VolumeInterpolatorType

[Serializable]
public enum VolumeInterpolatorType {
    Cubic = 2,
    CubicMonotonic = 3,
    Linear = 1,
    Step = 0,
}

New Type Android.Media.VolumeShaper

public sealed class VolumeShaper : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public float Volume { get; }
    // methods
    public void Apply (VolumeShaper.Operation operation);
    public virtual void Close ();
    public void Replace (VolumeShaper.Configuration configuration, VolumeShaper.Operation operation, bool join);

    // inner types
    public sealed class Configuration : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // properties
        public static Android.OS.IParcelableCreator Creator { get; }
        public static VolumeShaper.Configuration CubicRamp { get; }
        public long Duration { get; }
        public VolumeInterpolatorType InterpolatorType { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public static VolumeShaper.Configuration LinearRamp { get; }
        public static int MaximumCurvePoints { get; }
        public static VolumeShaper.Configuration ScurveRamp { get; }
        public static VolumeShaper.Configuration SineRamp { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual int DescribeContents ();
        public float[] GetTimes ();
        public float[] GetVolumes ();
        public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

        // inner types
        public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
            // constructors
            public VolumeShaper ();
            public VolumeShaper (VolumeShaper.Configuration configuration);
            // properties
            public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
            protected override IntPtr ThresholdClass { get; }
            protected override System.Type ThresholdType { get; }
            // methods
            public VolumeShaper.Configuration Build ();
            public VolumeShaper.Configuration.Builder InvertVolumes ();
            public VolumeShaper.Configuration.Builder ReflectTimes ();
            public VolumeShaper.Configuration.Builder ScaleToEndVolume (float volume);
            public VolumeShaper.Configuration.Builder ScaleToStartVolume (float volume);
            public VolumeShaper.Configuration.Builder SetCurve (float[] times, float[] volumes);
            public VolumeShaper.Configuration.Builder SetDuration (long durationMillis);
            public VolumeShaper.Configuration.Builder SetInterpolatorType (VolumeInterpolatorType interpolatorType);
        }
        public static class InterfaceConsts {
            // fields
            public static const int ContentsFileDescriptor;

            [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
            public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
        }
    }
    public sealed class Operation : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // properties
        public static Android.OS.IParcelableCreator Creator { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public static VolumeShaper.Operation Play { get; }
        public static VolumeShaper.Operation Reverse { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual int DescribeContents ();
        public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

        // inner types
        public static class InterfaceConsts {
            // fields
            public static const int ContentsFileDescriptor;

            [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
            public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
        }
    }
}

Namespace Android.Media.Browse

Type Changed: Android.Media.Browse.MediaBrowser

Type Changed: Android.Media.Browse.MediaBrowser.ItemCallback

Modified methods:

public virtual void OnError (string itemId mediaId)

Namespace Android.Media.TV

Type Changed: Android.Media.TV.TvContract

Added fields:

public static const string ActionInitializePrograms = "android.media.tv.action.INITIALIZE_PROGRAMS";
    public static const string ActionPreviewProgramAddedToWatchNext = "android.media.tv.action.PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT";
    public static const string ActionPreviewProgramBrowsableDisabled = "android.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED";
    public static const string ActionRequestChannelBrowsable = "android.media.tv.action.REQUEST_CHANNEL_BROWSABLE";
    public static const string ActionWatchNextProgramBrowsableDisabled = "android.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED";
    public static const string ExtraChannelId = "android.media.tv.extra.CHANNEL_ID";
    public static const string ExtraPreviewProgramId = "android.media.tv.extra.PREVIEW_PROGRAM_ID";
    public static const string ExtraWatchNextProgramId = "android.media.tv.extra.WATCH_NEXT_PROGRAM_ID";

Added methods:

public static Android.Net.Uri BuildPreviewProgramUri (long previewProgramId);
    public static Android.Net.Uri BuildPreviewProgramsUriForChannel (Android.Net.Uri channelUri);
    public static Android.Net.Uri BuildPreviewProgramsUriForChannel (long channelId);
    public static Android.Net.Uri BuildWatchNextProgramUri (long watchNextProgramId);
    public static void RequestChannelBrowsable (Android.Content.Context context, long channelId);

Type Changed: Android.Media.TV.TvContract.Channels

Added fields:

public static const string ColumnBrowsable = "browsable";
    public static const string ColumnInternalProviderId = "internal_provider_id";
    public static const string ColumnLocked = "locked";
    public static const string ColumnTransient = "transient";
    public static const string TypePreview = "TYPE_PREVIEW";

Type Changed: Android.Media.TV.TvContract.Programs

Added fields:

public static const string ColumnReviewRating = "review_rating";
    public static const string ColumnReviewRatingStyle = "review_rating_style";

Type Changed: Android.Media.TV.TvContract.RecordedPrograms

Added fields:

public static const string ColumnReviewRating = "review_rating";
    public static const string ColumnReviewRatingStyle = "review_rating_style";

New Type Android.Media.TV.PreviewPrograms

public sealed class PreviewPrograms : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const string ColumnAudioLanguage = "audio_language";
    public static const string ColumnAuthor = "author";
    public static const string ColumnAvailability = "availability";
    public static const string ColumnBrowsable = "browsable";
    public static const string ColumnCanonicalGenre = "canonical_genre";
    public static const string ColumnChannelId = "channel_id";
    public static const string ColumnContentId = "content_id";
    public static const string ColumnContentRating = "content_rating";
    public static const string ColumnDurationMillis = "duration_millis";
    public static const string ColumnEpisodeDisplayNumber = "episode_display_number";
    public static const string ColumnEpisodeTitle = "episode_title";
    public static const string ColumnIntentUri = "intent_uri";
    public static const string ColumnInteractionCount = "interaction_count";
    public static const string ColumnInteractionType = "interaction_type";
    public static const string ColumnInternalProviderData = "internal_provider_data";
    public static const string ColumnInternalProviderFlag1 = "internal_provider_flag1";
    public static const string ColumnInternalProviderFlag2 = "internal_provider_flag2";
    public static const string ColumnInternalProviderFlag3 = "internal_provider_flag3";
    public static const string ColumnInternalProviderFlag4 = "internal_provider_flag4";
    public static const string ColumnInternalProviderId = "internal_provider_id";
    public static const string ColumnItemCount = "item_count";
    public static const string ColumnLastPlaybackPositionMillis = "last_playback_position_millis";
    public static const string ColumnLive = "live";
    public static const string ColumnLogoUri = "logo_uri";
    public static const string ColumnLongDescription = "long_description";
    public static const string ColumnOfferPrice = "offer_price";
    public static const string ColumnPosterArtAspectRatio = "poster_art_aspect_ratio";
    public static const string ColumnPosterArtUri = "poster_art_uri";
    public static const string ColumnPreviewVideoUri = "preview_video_uri";
    public static const string ColumnReleaseDate = "release_date";
    public static const string ColumnReviewRating = "review_rating";
    public static const string ColumnReviewRatingStyle = "review_rating_style";
    public static const string ColumnSearchable = "searchable";
    public static const string ColumnSeasonDisplayNumber = "season_display_number";
    public static const string ColumnSeasonTitle = "season_title";
    public static const string ColumnShortDescription = "short_description";
    public static const string ColumnStartingPrice = "starting_price";
    public static const string ColumnThumbnailAspectRatio = "poster_thumbnail_aspect_ratio";
    public static const string ColumnThumbnailUri = "thumbnail_uri";
    public static const string ColumnTitle = "title";
    public static const string ColumnTransient = "transient";
    public static const string ColumnType = "type";
    public static const string ColumnVersionNumber = "version_number";
    public static const string ColumnVideoHeight = "video_height";
    public static const string ColumnVideoWidth = "video_width";
    public static const string ColumnWeight = "weight";
    public static const string ContentItemType = "vnd.android.cursor.item/preview_program";
    public static const string ContentType = "vnd.android.cursor.dir/preview_program";
    // properties
    public static Android.Net.Uri ContentUri { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const string ColumnPackageName = "package_name";
        public static const string Count = "_count";
        public static const string Id = "_id";
    }
}

New Type Android.Media.TV.WatchNextPrograms

public sealed class WatchNextPrograms : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const string ColumnAudioLanguage = "audio_language";
    public static const string ColumnAuthor = "author";
    public static const string ColumnAvailability = "availability";
    public static const string ColumnBrowsable = "browsable";
    public static const string ColumnCanonicalGenre = "canonical_genre";
    public static const string ColumnContentId = "content_id";
    public static const string ColumnContentRating = "content_rating";
    public static const string ColumnDurationMillis = "duration_millis";
    public static const string ColumnEpisodeDisplayNumber = "episode_display_number";
    public static const string ColumnEpisodeTitle = "episode_title";
    public static const string ColumnIntentUri = "intent_uri";
    public static const string ColumnInteractionCount = "interaction_count";
    public static const string ColumnInteractionType = "interaction_type";
    public static const string ColumnInternalProviderData = "internal_provider_data";
    public static const string ColumnInternalProviderFlag1 = "internal_provider_flag1";
    public static const string ColumnInternalProviderFlag2 = "internal_provider_flag2";
    public static const string ColumnInternalProviderFlag3 = "internal_provider_flag3";
    public static const string ColumnInternalProviderFlag4 = "internal_provider_flag4";
    public static const string ColumnInternalProviderId = "internal_provider_id";
    public static const string ColumnItemCount = "item_count";
    public static const string ColumnLastEngagementTimeUtcMillis = "last_engagement_time_utc_millis";
    public static const string ColumnLastPlaybackPositionMillis = "last_playback_position_millis";
    public static const string ColumnLive = "live";
    public static const string ColumnLogoUri = "logo_uri";
    public static const string ColumnLongDescription = "long_description";
    public static const string ColumnOfferPrice = "offer_price";
    public static const string ColumnPosterArtAspectRatio = "poster_art_aspect_ratio";
    public static const string ColumnPosterArtUri = "poster_art_uri";
    public static const string ColumnPreviewVideoUri = "preview_video_uri";
    public static const string ColumnReleaseDate = "release_date";
    public static const string ColumnReviewRating = "review_rating";
    public static const string ColumnReviewRatingStyle = "review_rating_style";
    public static const string ColumnSearchable = "searchable";
    public static const string ColumnSeasonDisplayNumber = "season_display_number";
    public static const string ColumnSeasonTitle = "season_title";
    public static const string ColumnShortDescription = "short_description";
    public static const string ColumnStartingPrice = "starting_price";
    public static const string ColumnThumbnailAspectRatio = "poster_thumbnail_aspect_ratio";
    public static const string ColumnThumbnailUri = "thumbnail_uri";
    public static const string ColumnTitle = "title";
    public static const string ColumnTransient = "transient";
    public static const string ColumnType = "type";
    public static const string ColumnVersionNumber = "version_number";
    public static const string ColumnVideoHeight = "video_height";
    public static const string ColumnVideoWidth = "video_width";
    public static const string ColumnWatchNextType = "watch_next_type";
    public static const string ContentItemType = "vnd.android.cursor.item/watch_next_program";
    public static const string ContentType = "vnd.android.cursor.dir/watch_next_program";
    // properties
    public static Android.Net.Uri ContentUri { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const string ColumnPackageName = "package_name";
        public static const string Count = "_count";
        public static const string Id = "_id";
    }
}

Type Changed: Android.Media.TV.TvInputInfo

Obsoleted methods:

[Obsolete ("deprecated")]
    public Android.Content.Intent CreateSettingsIntent ();

Type Changed: Android.Media.TV.TvInputManager

Added field:

public static const string ActionViewRecordingSchedules = "android.media.tv.action.VIEW_RECORDING_SCHEDULES";

New Type Android.Media.TV.PreviewAspectRatio

[Serializable]
public enum PreviewAspectRatio {
    A11 = 3,
    A169 = 0,
    A23 = 4,
    A32 = 1,
    A43 = 2,
}

New Type Android.Media.TV.PreviewAvailability

[Serializable]
public enum PreviewAvailability {
    Available = 0,
    FreeWithSubscription = 1,
    PaidContent = 2,
}

New Type Android.Media.TV.PreviewInteractionType

[Serializable]
public enum PreviewInteractionType {
    Fans = 3,
    Followers = 2,
    Likes = 4,
    Listens = 1,
    Thumbs = 5,
    Viewers = 6,
    Views = 0,
}

New Type Android.Media.TV.PreviewReviewRatingStyle

[Serializable]
public enum PreviewReviewRatingStyle {
    Percentage = 2,
    Stars = 0,
    ThumbsUpDown = 1,
}

New Type Android.Media.TV.PreviewType

[Serializable]
public enum PreviewType {
    Album = 8,
    Artist = 9,
    Channel = 6,
    Clip = 4,
    Event = 5,
    Movie = 0,
    Playlist = 10,
    Station = 11,
    Track = 7,
    TvEpisode = 3,
    TvSeason = 2,
    TvSeries = 1,
}

New Type Android.Media.TV.RecordedReviewRatingStyle

[Serializable]
public enum RecordedReviewRatingStyle {
    Percentage = 2,
    Stars = 0,
    ThumbsUpDown = 1,
}

New Type Android.Media.TV.ReviewRatingStyle

[Serializable]
public enum ReviewRatingStyle {
    Percentage = 2,
    Stars = 0,
    ThumbsUpDown = 1,
}

New Type Android.Media.TV.WatchNextAspectRatio

[Serializable]
public enum WatchNextAspectRatio {
    A11 = 3,
    A169 = 0,
    A23 = 4,
    A32 = 1,
    A43 = 2,
}

New Type Android.Media.TV.WatchNextAvailability

[Serializable]
public enum WatchNextAvailability {
    Available = 0,
    FreeWithSubscription = 1,
    PaidContent = 2,
}

New Type Android.Media.TV.WatchNextInteractionType

[Serializable]
public enum WatchNextInteractionType {
    Fans = 3,
    Followers = 2,
    Likes = 4,
    Listens = 1,
    Thumbs = 5,
    Viewers = 6,
    Views = 0,
}

New Type Android.Media.TV.WatchNextReviewRatingStyle

[Serializable]
public enum WatchNextReviewRatingStyle {
    Percentage = 2,
    Stars = 0,
    ThumbsUpDown = 1,
}

New Type Android.Media.TV.WatchNextType

[Serializable]
public enum WatchNextType {
    Album = 8,
    Artist = 9,
    Channel = 6,
    Clip = 4,
    Event = 5,
    Movie = 0,
    Playlist = 10,
    Station = 11,
    Track = 7,
    TvEpisode = 3,
    TvSeason = 2,
    TvSeries = 1,
}

New Type Android.Media.TV.WatchNextWatchNextType

[Serializable]
public enum WatchNextWatchNextType {
    Continue = 0,
    New = 2,
    Next = 1,
    Watchlist = 3,
}

Namespace Android.Net

Type Changed: Android.Net.ConnectivityManager

Added methods:

public virtual MultipathPreference GetMultipathPreference (Network network);
    public virtual void RegisterDefaultNetworkCallback (ConnectivityManager.NetworkCallback networkCallback, Android.OS.Handler handler);
    public virtual void RegisterNetworkCallback (NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback, Android.OS.Handler handler);
    public virtual void RequestNetwork (NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback, Android.OS.Handler handler);
    public virtual void RequestNetwork (NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback, int timeoutMs);
    public virtual void RequestNetwork (NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback, Android.OS.Handler handler, int timeoutMs);

Type Changed: Android.Net.ConnectivityManager.NetworkCallback

Added method:

public virtual void OnUnavailable ();

Type Changed: Android.Net.NetworkCapabilities

Added field:

[Obsolete ("This constant will be removed in the future version. Use Android.Net.TransportType enum directly instead of this field.")]
    public static const TransportType TransportWifiAware;

Type Changed: Android.Net.NetworkRequest

Type Changed: Android.Net.NetworkRequest.Builder

Added method:

public virtual NetworkRequest.Builder SetNetworkSpecifier (NetworkSpecifier networkSpecifier);

Type Changed: Android.Net.TrafficStats

Added method:

public static int GetAndSetThreadStatsTag (int tag);

Type Changed: Android.Net.TransportType

Added value:

    WifiAware = 5,

New Type Android.Net.MultipathPreference

[Serializable]
public enum MultipathPreference {
    Handover = 1,
    Performance = 4,
    Reliability = 2,
}

New Type Android.Net.NetworkSpecifier

public abstract class NetworkSpecifier : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected NetworkSpecifier (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

Namespace Android.Net.Wifi

Type Changed: Android.Net.Wifi.WifiConfiguration

Added properties:

public virtual Android.Net.ProxyInfo HttpProxy { get; set; }
    public bool IsHomeProviderNetwork { get; set; }

Type Changed: Android.Net.Wifi.WifiEnterpriseConfig

Added methods:

public virtual Java.Security.Cert.X509Certificate[] GetClientCertificateChain ();
    public virtual void SetClientKeyEntryWithCertificateChain (Java.Security.IPrivateKey privateKey, Java.Security.Cert.X509Certificate[] clientCertificateChain);

Type Changed: Android.Net.Wifi.WifiEnterpriseConfig.Phase2

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.Net.Wifi.WifiPhase2Method enum directly instead of this field.")]
    public static const WifiPhase2Method Aka;

    [Obsolete ("This constant will be removed in the future version. Use Android.Net.Wifi.WifiPhase2Method enum directly instead of this field.")]
    public static const WifiPhase2Method AkaPrime;

    [Obsolete ("This constant will be removed in the future version. Use Android.Net.Wifi.WifiPhase2Method enum directly instead of this field.")]
    public static const WifiPhase2Method Sim;

Type Changed: Android.Net.Wifi.WifiManager

Added property:

public virtual System.Collections.Generic.IList<Hotspot2.PasspointConfiguration> PasspointConfigurations { get; }

Modified methods:

public virtual bool EnableNetwork (int netId, bool disableOthers attemptConnect)

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual bool PingSupplicant ();
    [Obsolete ("deprecated")]
    public virtual bool SaveConfiguration ();

Added methods:

public virtual void AddOrUpdatePasspointConfiguration (Hotspot2.PasspointConfiguration config);
    public virtual void RemovePasspointConfiguration (string fqdn);
    public virtual void StartLocalOnlyHotspot (WifiManager.LocalOnlyHotspotCallback callback, Android.OS.Handler handler);

New Type Android.Net.Wifi.LocalOnlyHotspotCallback

public class LocalOnlyHotspotCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public WifiManager ();
    protected WifiManager (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void OnFailed (LocalOnlyHotspotCallbackErrorCode reason);
    public virtual void OnStarted (WifiManager.LocalOnlyHotspotReservation reservation);
    public virtual void OnStopped ();
}

New Type Android.Net.Wifi.LocalOnlyHotspotReservation

public class LocalOnlyHotspotReservation : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable, System.IDisposable {
    // constructors
    protected WifiManager (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public virtual WifiConfiguration WifiConfiguration { get; }
    // methods
    public virtual void Close ();
}

Type Changed: Android.Net.Wifi.WifiPhase2Method

Added values:

    Aka = 6,
    AkaPrime = 7,
    Sim = 5,

New Type Android.Net.Wifi.LocalOnlyHotspotCallbackErrorCode

[Serializable]
public enum LocalOnlyHotspotCallbackErrorCode {
    Generic = 2,
    IncompatibleMode = 3,
    NoChannel = 1,
    TetheringDisallowed = 4,
}

Namespace Android.OS

Type Changed: Android.OS.BatteryManager

Added field:

[Obsolete ("This constant will be removed in the future version. Use Android.OS.BatteryProperty enum directly instead of this field.")]
    public static const BatteryProperty BatteryPropertyStatus;

Type Changed: Android.OS.BatteryProperty

Added value:

    Status = 6,

Type Changed: Android.OS.Build

Type Changed: Android.OS.Build.VERSION_CODES

Added field:

[Obsolete ("This constant will be removed in the future version. Use Android.OS.BuildVersionCodes enum directly instead of this field.")]
    public static const BuildVersionCodes O;

Type Changed: Android.OS.BuildVersionCodes

Added value:

    O = 26,

Type Changed: Android.OS.Bundle

Added method:

public Bundle DeepCopy ();

Type Changed: Android.OS.Pattern

Added value:

    AdvancedGlob = 3,

Type Changed: Android.OS.PersistableBundle

Added method:

public PersistableBundle DeepCopy ();

Type Changed: Android.OS.RemoteCallbackList

Added methods:

public virtual Java.Lang.Object GetRegisteredCallbackCookie (int index);
    public virtual Java.Lang.Object GetRegisteredCallbackItem (int index);

Type Changed: Android.OS.StrictMode

Type Changed: Android.OS.StrictMode.ThreadPolicy

Type Changed: Android.OS.StrictMode.Builder

Added methods:

public StrictMode.ThreadPolicy.Builder DetectUnbufferedIo ();
    public StrictMode.ThreadPolicy.Builder PermitUnbufferedIo ();

Type Changed: Android.OS.StrictMode.VmPolicy

Type Changed: Android.OS.StrictMode.Builder

Added methods:

public StrictMode.VmPolicy.Builder DetectContentUriWithoutPermission ();
    public StrictMode.VmPolicy.Builder DetectUntaggedSockets ();

Type Changed: Android.OS.UserManager

Added fields:

public static const string DisallowAddManagedProfile = "no_add_managed_profile";
    public static const string DisallowAutofill = "no_autofill";
    public static const string DisallowBluetooth = "no_bluetooth";
    public static const string DisallowBluetoothSharing = "no_bluetooth_sharing";
    public static const string DisallowRemoveManagedProfile = "no_remove_managed_profile";

Type Changed: Android.OS.Vibrator

Added property:

public virtual bool HasAmplitudeControl { get; }

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void Vibrate (long milliseconds);
    [Obsolete ("deprecated")]
    public virtual void Vibrate (long milliseconds, Android.Media.AudioAttributes attributes);
    [Obsolete ("deprecated")]
    public virtual void Vibrate (long[] pattern, int repeat);
    [Obsolete ("deprecated")]
    public virtual void Vibrate (long[] pattern, int repeat, Android.Media.AudioAttributes attributes);

Added methods:

public virtual void Vibrate (VibrationEffect vibe);
    public virtual void Vibrate (VibrationEffect vibe, Android.Media.AudioAttributes attributes);

New Type Android.OS.ProxyFileDescriptorCallback

public abstract class ProxyFileDescriptorCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public ProxyFileDescriptorCallback ();
    protected ProxyFileDescriptorCallback (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void OnFsync ();
    public virtual long OnGetSize ();
    public virtual int OnRead (long offset, int size, byte[] data);
    public virtual void OnRelease ();
    public virtual int OnWrite (long offset, int size, byte[] data);
}

New Type Android.OS.TestLooperManager

public class TestLooperManager : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected TestLooperManager (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual MessageQueue MessageQueue { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void Execute (Message message);
    public virtual bool HasMessages (Handler h, Java.Lang.Object object, Java.Lang.IRunnable r);
    public virtual bool HasMessages (Handler h, Java.Lang.Object object, int what);
    public virtual Message Next ();
    public virtual void Recycle (Message msg);
    public virtual void Release ();
}

New Type Android.OS.VibrationEffect

public abstract class VibrationEffect : Java.Lang.Object, IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected VibrationEffect (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // fields
    public static const int DefaultAmplitude;
    // properties
    public static IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static VibrationEffect CreateOneShot (long milliseconds, int amplitude);
    public static VibrationEffect CreateWaveform (long[] timings, int repeat);
    public static VibrationEffect CreateWaveform (long[] timings, int[] amplitudes, int repeat);
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Parcel dest, ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

Namespace Android.OS.Health

Type Changed: Android.OS.Health.UidHealthStats

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const int MeasurementCpuPowerMams;

Namespace Android.OS.Storage

Type Changed: Android.OS.Storage.StorageManager

Added fields:

public static const string ExtraRequestedBytes = "android.os.storage.extra.REQUESTED_BYTES";
    public static const string ExtraUuid = "android.os.storage.extra.UUID";

Added property:

public static Java.Util.UUID UuidDefault { get; }

Added methods:

public virtual void AllocateBytes (Java.IO.FileDescriptor fd, long bytes);
    public virtual void AllocateBytes (Java.Util.UUID storageUuid, long bytes);
    public virtual long GetAllocatableBytes (Java.Util.UUID storageUuid);
    public virtual long GetCacheQuotaBytes (Java.Util.UUID storageUuid);
    public virtual long GetCacheSizeBytes (Java.Util.UUID storageUuid);
    public virtual Java.Util.UUID GetUuidForPath (Java.IO.File path);
    public virtual bool IsCacheBehaviorGroup (Java.IO.File path);
    public virtual bool IsCacheBehaviorTombstone (Java.IO.File path);
    public virtual Android.OS.ParcelFileDescriptor OpenProxyFileDescriptor (Android.OS.ParcelFileMode mode, Android.OS.ProxyFileDescriptorCallback callback, Android.OS.Handler handler);
    public virtual void SetCacheBehaviorGroup (Java.IO.File path, bool group);
    public virtual void SetCacheBehaviorTombstone (Java.IO.File path, bool tombstone);

Namespace Android.Opengl

Type Changed: Android.Opengl.EGL14

Obsoleted methods:

[Obsolete ("deprecated")]
    public static EGLSurface EglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, int pixmap, int[] attrib_list, int offset);

Type Changed: Android.Opengl.EGLExt

Added field:

public static const int EglRecordableAndroid;

Type Changed: Android.Opengl.GLSurfaceView

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void SurfaceRedrawNeeded (Android.Views.ISurfaceHolder holder);

Added method:

public virtual void SurfaceRedrawNeededAsync (Android.Views.ISurfaceHolder holder, Java.Lang.IRunnable finishDrawing);

Namespace Android.Preferences

Type Changed: Android.Preferences.Preference

Added properties:

public virtual bool IconSpaceReserved { get; set; }
    public virtual PreferenceGroup Parent { get; }
    public virtual IPreferenceDataStore PreferenceDataStore { get; set; }
    public virtual bool RecycleEnabled { get; set; }
    public virtual bool SingleLineTitle { get; set; }

Type Changed: Android.Preferences.PreferenceManager

Added property:

public virtual IPreferenceDataStore PreferenceDataStore { get; set; }

New Type Android.Preferences.IPreferenceDataStore

public interface IPreferenceDataStore : Android.Runtime.IJavaObject, System.IDisposable {
}

Namespace Android.Print

Type Changed: Android.Print.PrintJobInfo

Added methods:

public int GetAdvancedIntOption (string key);
    public string GetAdvancedStringOption (string key);
    public bool HasAdvancedOption (string key);

Namespace Android.PrintServices

Type Changed: Android.PrintServices.PrintService

Added fields:

public static const string ExtraCanSelectPrinter = "android.printservice.extra.CAN_SELECT_PRINTER";
    public static const string ExtraSelectPrinter = "android.printservice.extra.SELECT_PRINTER";

Namespace Android.Provider

Type Changed: Android.Provider.AlarmClock

Added field:

public static const string ActionShowTimers = "android.intent.action.SHOW_TIMERS";

Type Changed: Android.Provider.CallLog

Type Changed: Android.Provider.CallLog.Calls

Added fields:

public static const int FeaturesHdCall;
    public static const int FeaturesWifi;

Type Changed: Android.Provider.ContactsContract

Type Changed: Android.Provider.ContactsContract.Directory

Added field:

public static const string CallerPackageParamKey = "callerPackage";

Type Changed: Android.Provider.ContactsContract.PhoneLookup

Type Changed: Android.Provider.ContactsContract.InterfaceConsts

Added fields:

public static const string DisplayNameAlternative = "display_name_alt";
    public static const string DisplayNamePrimary = "display_name";
    public static const string DisplayNameSource = "display_name_source";
    public static const string PhoneticName = "phonetic_name";
    public static const string PhoneticNameStyle = "phonetic_name_style";
    public static const string SortKeyAlternative = "sort_key_alt";
    public static const string SortKeyPrimary = "sort_key";

Type Changed: Android.Provider.ContactsContract.ProviderStatus

Added field:

public static const string DatabaseCreationTimestamp = "database_creation_timestamp";

Type Changed: Android.Provider.DocumentContractFlags

Added values:

    SupportsSettings = 2048,
    WebLinkable = 4096,

Type Changed: Android.Provider.DocumentRootFlags

Added value:

    SupportsEject = 32,

Type Changed: Android.Provider.DocumentsContract

Added fields:

public static const string ActionDocumentSettings = "android.provider.action.DOCUMENT_SETTINGS";
    public static const string ExtraInitialUri = "android.provider.extra.INITIAL_URI";

Added methods:

public static Android.Content.IntentSender CreateWebLinkIntent (Android.Content.ContentResolver resolver, Android.Net.Uri uri, Android.OS.Bundle options);
    public static void EjectRoot (Android.Content.ContentResolver resolver, Android.Net.Uri rootUri);
    public static DocumentsContract.Path FindDocumentPath (Android.Content.ContentResolver resolver, Android.Net.Uri treeUri);

Type Changed: Android.Provider.DocumentsContract.Document

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.Provider.DocumentContractFlags enum directly instead of this field.")]
    public static const DocumentContractFlags FlagSupportsSettings;

    [Obsolete ("This constant will be removed in the future version. Use Android.Provider.DocumentContractFlags enum directly instead of this field.")]
    public static const DocumentContractFlags FlagWebLinkable;

Type Changed: Android.Provider.DocumentsContract.Root

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.Provider.DocumentRootFlags enum directly instead of this field.")]
    public static const DocumentRootFlags FlagSupportsEject;
    public static const string MimeTypeItem = "vnd.android.document/root";

New Type Android.Provider.Path

public sealed class Path : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public DocumentsContract (string rootId, System.Collections.Generic.IList<string> path);
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public string RootId { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public System.Collections.Generic.IList<string> GetPath ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

Type Changed: Android.Provider.DocumentsProvider

Added methods:

public virtual Android.Content.IntentSender CreateWebLinkIntent (string documentId, Android.OS.Bundle options);
    public virtual void EjectRoot (string rootId);
    public virtual DocumentsContract.Path FindDocumentPath (string parentDocumentId, string childDocumentId);
    public override Android.Database.ICursor Query (Android.Net.Uri uri, string[] projection, Android.OS.Bundle queryArgs, Android.OS.CancellationSignal cancellationSignal);
    public virtual Android.Database.ICursor QueryChildDocuments (string parentDocumentId, string[] projection, Android.OS.Bundle queryArgs);

Type Changed: Android.Provider.MediaStore

Added method:

public static Android.Net.Uri GetDocumentUri (Android.Content.Context context, Android.Net.Uri mediaUri);

Type Changed: Android.Provider.Settings

Added fields:

public static const string ActionAppNotificationSettings = "android.settings.APP_NOTIFICATION_SETTINGS";
    public static const string ActionChannelNotificationSettings = "android.settings.CHANNEL_NOTIFICATION_SETTINGS";
    public static const string ActionManageUnknownAppSources = "android.settings.MANAGE_UNKNOWN_APP_SOURCES";
    public static const string ActionNightDisplaySettings = "android.settings.NIGHT_DISPLAY_SETTINGS";
    public static const string ActionRequestSetAutofillService = "android.settings.REQUEST_SET_AUTOFILL_SERVICE";
    public static const string ActionZenModePrioritySettings = "android.settings.ZEN_MODE_PRIORITY_SETTINGS";
    public static const string ExtraAppPackage = "android.provider.extra.APP_PACKAGE";
    public static const string ExtraChannelId = "android.provider.extra.CHANNEL_ID";

Type Changed: Android.Provider.Settings.Global

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const string WifiNetworksAvailableNotificationOn = "wifi_networks_available_notification_on";

Type Changed: Android.Provider.Settings.Secure

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const string AccessibilitySpeakPassword = "speak_password";
    [Obsolete ("deprecated")]
    public static const string InstallNonMarketApps = "install_non_market_apps";

Type Changed: Android.Provider.Telephony

New Type Android.Provider.ServiceStateTable

public sealed class ServiceStateTable : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const string Authority = "service-state";
    public static const string IsManualNetworkSelection = "is_manual_network_selection";
    public static const string VoiceOperatorNumeric = "voice_operator_numeric";
    public static const string VoiceRegState = "voice_reg_state";
    // properties
    public static Android.Net.Uri ContentUri { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static Android.Net.Uri GetUriForSubscriptionId (int subscriptionId);
    public static Android.Net.Uri GetUriForSubscriptionIdAndField (int subscriptionId, string field);
}

Type Changed: Android.Provider.VoicemailContract

Type Changed: Android.Provider.VoicemailContract.Voicemails

Added fields:

public static const string Archived = "archived";
    public static const string BackedUp = "backed_up";
    public static const string IsOmtpVoicemail = "is_omtp_voicemail";
    public static const string Restored = "restored";

New Type Android.Provider.FontFamilyResultStatus

[Serializable]
public enum FontFamilyResultStatus {
    Ok = 0,
    Rejected = 3,
    UnexpectedDataProvided = 2,
    WrongCertificates = 1,
}

New Type Android.Provider.FontRequest

public sealed class FontRequest : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public FontRequest (string providerAuthority, string providerPackage, string query);
    public FontRequest (string providerAuthority, string providerPackage, string query, System.Collections.Generic.IList<System.Collections.Generic.IList<System.Byte[]>> certificates);
    // properties
    public System.Collections.Generic.IList<System.Collections.Generic.IList<System.Byte[]>> Certificates { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public string ProviderAuthority { get; }
    public string ProviderPackage { get; }
    public string Query { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Android.Provider.FontRequestFailureReason

[Serializable]
public enum FontRequestFailureReason {
    FontLoadError = -3,
    FontNotFound = 1,
    FontUnavailable = 2,
    MalformedQuery = 3,
    ProviderNotFound = -1,
    WrongCertificates = -2,
}

New Type Android.Provider.FontResultCode

[Serializable]
public enum FontResultCode {
    FontNotFound = 1,
    FontUnavailable = 2,
    MalformedQuery = 3,
    Ok = 0,
}

New Type Android.Provider.FontsContract

public class FontsContract : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected FontsContract (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static Android.Graphics.Typeface BuildTypeface (Android.Content.Context context, Android.OS.CancellationSignal cancellationSignal, FontsContract.FontInfo[] fonts);
    public static FontsContract.FontFamilyResult FetchFonts (Android.Content.Context context, Android.OS.CancellationSignal cancellationSignal, FontRequest request);
    public static void RequestFonts (Android.Content.Context context, FontRequest request, Android.OS.Handler handler, Android.OS.CancellationSignal cancellationSignal, FontsContract.FontRequestCallback callback);

    // inner types
    public sealed class Columns : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // fields
        public static const string FileId = "file_id";
        public static const string Italic = "font_italic";
        public static const string ResultCode = "result_code";
        public static const string TtcIndex = "font_ttc_index";
        public static const string VariationSettings = "font_variation_settings";
        public static const string Weight = "font_weight";
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }

        // inner types
        public static class InterfaceConsts {
            // fields
            public static const string Count = "_count";
            public static const string Id = "_id";
        }
    }
    public class FontFamilyResult : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        protected FontsContract (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public virtual FontFamilyResultStatus StatusCode { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual FontsContract.FontInfo[] GetFonts ();
    }
    public class FontInfo : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        protected FontsContract (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public virtual bool IsItalic { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public virtual FontResultCode ResultCode { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        public virtual int TtcIndex { get; }
        public virtual Android.Net.Uri Uri { get; }
        public virtual int Weight { get; }
        // methods
        public virtual Android.Graphics.Fonts.FontVariationAxis[] GetAxes ();
    }
    public class FontRequestCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public FontsContract ();
        protected FontsContract (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual void OnTypefaceRequestFailed (FontRequestFailureReason reason);
        public virtual void OnTypefaceRetrieved (Android.Graphics.Typeface typeface);
    }
}

Namespace Android.Security

Type Changed: Android.Security.KeyChain

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const string ActionStorageChanged = "android.security.STORAGE_CHANGED";

Added fields:

public static const string ActionKeyAccessChanged = "android.security.action.KEY_ACCESS_CHANGED";
    public static const string ActionKeychainChanged = "android.security.action.KEYCHAIN_CHANGED";
    public static const string ActionTrustStoreChanged = "android.security.action.TRUST_STORE_CHANGED";
    public static const string ExtraKeyAccessible = "android.security.extra.KEY_ACCESSIBLE";
    public static const string ExtraKeyAlias = "android.security.extra.KEY_ALIAS";

Namespace Android.Service.Autofill

Type Changed: Android.Service.Autofill.SaveFlags

Added value:

    SaveOnAllViewsInvisible = 1,

New Type Android.Service.Autofill.AutofillService

public abstract class AutofillService : Android.App.Service, Android.Content.IComponentCallbacks, Android.Content.IComponentCallbacks2, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public AutofillService ();
    protected AutofillService (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // fields
    public static const string ServiceInterface = "android.service.autofill.AutofillService";
    public static const string ServiceMetaData = "android.autofill";
    // properties
    public FillEventHistory FillEventHistory { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public override Android.OS.IBinder OnBind (Android.Content.Intent intent);
    public virtual void OnConnected ();
    public virtual void OnDisconnected ();
    public virtual void OnFillRequest (FillRequest request, Android.OS.CancellationSignal cancellationSignal, FillCallback callback);
    public virtual void OnSaveRequest (SaveRequest request, SaveCallback callback);
}

New Type Android.Service.Autofill.Dataset

public sealed class Dataset : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel parcel, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public Dataset ();
        public Dataset (Android.Widget.RemoteViews presentation);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public Dataset Build ();
        public Dataset.Builder SetAuthentication (Android.Content.IntentSender authentication);
        public Dataset.Builder SetId (string id);
        public Dataset.Builder SetValue (Android.Views.Autofill.AutofillId id, Android.Views.Autofill.AutofillValue value);
        public Dataset.Builder SetValue (Android.Views.Autofill.AutofillId id, Android.Views.Autofill.AutofillValue value, Android.Widget.RemoteViews presentation);
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Service.Autofill.EventType

[Serializable]
public enum EventType {
    AuthenticationSelected = 2,
    DatasetAuthenticationSelected = 1,
    DatasetSelected = 0,
    SaveShown = 3,
}

New Type Android.Service.Autofill.FillCallback

public sealed class FillCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public void OnFailure (Java.Lang.ICharSequence message);
    public void OnFailure (string message);
    public void OnSuccess (FillResponse response);
}

New Type Android.Service.Autofill.FillContext

public sealed class FillContext : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public int RequestId { get; }
    public Android.App.Assist.AssistStructure Structure { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel parcel, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Service.Autofill.FillEventHistory

public sealed class FillEventHistory : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public Android.OS.Bundle ClientState { get; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public System.Collections.Generic.IList<FillEventHistory.Event> Events { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Event : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // properties
        public string DatasetId { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        public EventType Type { get; }
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Service.Autofill.FillRequest

public sealed class FillRequest : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const int FlagManualRequest;
    // properties
    public Android.OS.Bundle ClientState { get; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public System.Collections.Generic.IList<FillContext> FillContexts { get; }
    public int Flags { get; }
    public int Id { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel parcel, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Service.Autofill.FillResponse

public sealed class FillResponse : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel parcel, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public FillResponse ();
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public FillResponse.Builder AddDataset (Dataset dataset);
        public FillResponse Build ();
        public FillResponse.Builder SetAuthentication (Android.Views.Autofill.AutofillId[] ids, Android.Content.IntentSender authentication, Android.Widget.RemoteViews presentation);
        public FillResponse.Builder SetClientState (Android.OS.Bundle clientState);
        public FillResponse.Builder SetIgnoredIds (Android.Views.Autofill.AutofillId[] ids);
        public FillResponse.Builder SetSaveInfo (SaveInfo saveInfo);
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Service.Autofill.NegativeButtonStyle

[Serializable]
public enum NegativeButtonStyle {
    Cancel = 0,
    Reject = 1,
}

New Type Android.Service.Autofill.SaveCallback

public sealed class SaveCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public void OnFailure (Java.Lang.ICharSequence message);
    public void OnFailure (string message);
    public void OnSuccess ();
}

New Type Android.Service.Autofill.SaveDataType

[Serializable]
public enum SaveDataType {
    Address = 2,
    CreditCard = 4,
    EmailAddress = 16,
    Generic = 0,
    Password = 1,
    Username = 8,
}

New Type Android.Service.Autofill.SaveInfo

public sealed class SaveInfo : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel parcel, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public SaveInfo (SaveDataType type, Android.Views.Autofill.AutofillId[] requiredIds);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public SaveInfo Build ();
        public SaveInfo.Builder SetDescription (Java.Lang.ICharSequence description);
        public SaveInfo.Builder SetDescription (string description);
        public SaveInfo.Builder SetFlags (SaveFlags flags);
        public SaveInfo.Builder SetNegativeAction (NegativeButtonStyle style, Android.Content.IntentSender listener);
        public SaveInfo.Builder SetOptionalIds (Android.Views.Autofill.AutofillId[] ids);
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Service.Autofill.SaveRequest

public sealed class SaveRequest : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public Android.OS.Bundle ClientState { get; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public System.Collections.Generic.IList<FillContext> FillContexts { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel parcel, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

Namespace Android.Service.Notification

Type Changed: Android.Service.Notification.ConditionProviderService

Added methods:

public static void RequestRebind (Android.Content.ComponentName componentName);
    public void RequestUnbind ();

Type Changed: Android.Service.Notification.NotificationListenerService

Added methods:

public System.Collections.Generic.IList<Android.App.NotificationChannelGroup> GetNotificationChannelGroups (string pkg, Android.OS.UserHandle user);
    public System.Collections.Generic.IList<Android.App.NotificationChannel> GetNotificationChannels (string pkg, Android.OS.UserHandle user);
    public StatusBarNotification[] GetSnoozedNotifications ();
    public virtual void OnNotificationChannelGroupModified (string pkg, Android.OS.UserHandle user, Android.App.NotificationChannelGroup group, NotificationChannelOrGroupEventType modificationType);
    public virtual void OnNotificationChannelModified (string pkg, Android.OS.UserHandle user, Android.App.NotificationChannel channel, NotificationChannelOrGroupEventType modificationType);
    public virtual void OnNotificationRemoved (StatusBarNotification sbn, NotificationListenerService.RankingMap rankingMap, NotificationCancelReason reason);
    public void SnoozeNotification (string key, long durationMs);
    public void UpdateNotificationChannel (string pkg, Android.OS.UserHandle user, Android.App.NotificationChannel channel);

Type Changed: Android.Service.Notification.NotificationListenerService.Ranking

Added property:

public virtual Android.App.NotificationChannel Channel { get; }

Added method:

public virtual bool CanShowBadge ();

New Type Android.Service.Notification.NotificationCancelReason

[Serializable]
public enum NotificationCancelReason {
    AppCancel = 8,
    AppCancelAll = 9,
    Cancel = 2,
    CancelAll = 3,
    ChannelBanned = 17,
    Click = 1,
    Error = 4,
    GroupOptimization = 13,
    GroupSummaryCanceled = 12,
    ListenerCancel = 10,
    ListenerCancelAll = 11,
    PackageBanned = 7,
    PackageChanged = 5,
    PackageSuspended = 14,
    ProfileTurnedOff = 15,
    Snoozed = 18,
    Timeout = 19,
    Unautobundled = 16,
    UserStopped = 6,
}

New Type Android.Service.Notification.NotificationChannelOrGroupEventType

[Serializable]
public enum NotificationChannelOrGroupEventType {
    Added = 1,
    Deleted = 3,
    Updated = 2,
}

Namespace Android.Service.Voice

Type Changed: Android.Service.Voice.VoiceInteractionSession

Added methods:

public virtual void OnPrepareShow (Android.OS.Bundle args, ShowFlags showFlags);
    public virtual void SetUiEnabled (bool enabled);
    public virtual void StartAssistantActivity (Android.Content.Intent intent);

Namespace Android.Speech.Tts

Type Changed: Android.Speech.Tts.UtteranceProgressListener

Added method:

public virtual void OnRangeStart (string utteranceId, int start, int end, int frame);

Namespace Android.Systems

Type Changed: Android.Systems.Os

Added methods:

public static byte[] Getxattr (string path, string name);
    public static int If_nametoindex (string name);
    public static string[] Listxattr (string path);
    public static void Removexattr (string path, string name);
    public static void SetsockoptInt (Java.IO.FileDescriptor fd, int level, int option, int value);
    public static void Setxattr (string path, string name, byte[] value, int flags);

Type Changed: Android.Systems.OsConstants

Added property:

public static int TcpUserTimeout { get; }

Namespace Android.Telecom

Type Changed: Android.Telecom.Call

Added field:

public static const string ExtraLastEmergencyCallbackTimeMillis = "android.telecom.extra.LAST_EMERGENCY_CALLBACK_TIME_MILLIS";

Added property:

public bool IsRttActive { get; }

Added methods:

public Call.RttCall GetRttCall ();
    public void RespondToRttRequest (int id, bool accept);
    public void SendRttRequest ();
    public void StopRtt ();

Type Changed: Android.Telecom.Call.Callback

Added methods:

public virtual void OnRttInitiationFailure (Call call, RttSessionModifyResult reason);
    public virtual void OnRttModeChanged (Call call, RttMode mode);
    public virtual void OnRttRequest (Call call, int id);
    public virtual void OnRttStatusChanged (Call call, bool enabled, Call.RttCall rttCall);

Type Changed: Android.Telecom.Call.Details

Added property:

public virtual long CreationTimeMillis { get; }

New Type Android.Telecom.RttCall

public sealed class RttCall : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public RttMode RttAudioMode { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public string Read ();
    public void SetRttMode (RttMode mode);
    public void Write (string input);
}

Type Changed: Android.Telecom.CallProperty

Added value:

    SelfManaged = 256,

Type Changed: Android.Telecom.Connection

Added fields:

public static const string ExtraAnsweringDropsFgCallAppName = "android.telecom.extra.ANSWERING_DROPS_FG_CALL_APP_NAME";

    [Obsolete ("This constant will be removed in the future version. Use Android.Telecom.ConnectionProperties enum directly instead of this field.")]
    public static const ConnectionProperties PropertySelfManaged;

Added methods:

public virtual void OnShowIncomingCallUi ();
    public void SetAudioRoute (CallAudioRoute route);

New Type Android.Telecom.RttModifyStatus

public sealed class RttModifyStatus : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

Type Changed: Android.Telecom.ConnectionProperties

Added value:

    SelfManaged = 128,

Type Changed: Android.Telecom.ConnectionService

Added methods:

public virtual void OnCreateIncomingConnectionFailed (PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
    public virtual void OnCreateOutgoingConnectionFailed (PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);

Type Changed: Android.Telecom.PhoneAccountCapability

Added values:

    Rtt = 4096,
    SelfManaged = 2048,
    SupportsVideoCalling = 1024,

Type Changed: Android.Telecom.TelecomManager

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const string ActionIncomingCall = "android.telecom.action.INCOMING_CALL";

Added fields:

public static const string ActionPhoneAccountRegistered = "android.telecom.action.PHONE_ACCOUNT_REGISTERED";
    public static const string ActionPhoneAccountUnregistered = "android.telecom.action.PHONE_ACCOUNT_UNREGISTERED";
    public static const string ExtraIncomingVideoState = "android.telecom.extra.INCOMING_VIDEO_STATE";
    public static const string ExtraStartCallWithRtt = "android.telecom.extra.START_CALL_WITH_RTT";
    public static const string MetadataIncludeSelfManagedCalls = "android.telecom.INCLUDE_SELF_MANAGED_CALLS";

Added properties:

public virtual bool IsInManagedCall { get; }
    public virtual System.Collections.Generic.IList<PhoneAccountHandle> SelfManagedPhoneAccounts { get; }

Added methods:

public virtual void AcceptRingingCall ();
    public virtual void AcceptRingingCall (int videoState);
    public virtual bool IsIncomingCallPermitted (PhoneAccountHandle phoneAccountHandle);
    public virtual bool IsOutgoingCallPermitted (PhoneAccountHandle phoneAccountHandle);

Type Changed: Android.Telecom.VideoSessionEvent

Added value:

    CameraPermissionError = 7,

New Type Android.Telecom.RttMode

[Serializable]
public enum RttMode {
    Full = 1,
    Hco = 2,
    Vco = 3,
}

New Type Android.Telecom.RttSessionModifyResult

[Serializable]
public enum RttSessionModifyResult {
    Fail = 2,
    Invalid = 3,
    RejectedByRemote = 5,
    Success = 1,
    TimedOut = 4,
}

Namespace Android.Telephony

Type Changed: Android.Telephony.CarrierConfigManager

Obsoleted fields:

[Obsolete ("deprecated")]
    public static const string KeyCarrierVvmPackageNameString = "carrier_vvm_package_name_string";

Added fields:

public static const int DataCycleThresholdDisabled;
    public static const string KeyCallForwardingBlocksWhileRoamingStringArray = "call_forwarding_blocks_while_roaming_string_array";
    public static const string KeyCarrierDataCallPermanentFailureStrings = "carrier_data_call_permanent_failure_strings";
    public static const string KeyCarrierVolteProvisionedBool = "carrier_volte_provisioned_bool";
    public static const string KeyCarrierVvmPackageNameStringArray = "carrier_vvm_package_name_string_array";
    public static const string KeyCdma3waycallFlashDelayInt = "cdma_3waycall_flash_delay_int";
    public static const string KeyConfigImsPackageOverrideString = "config_ims_package_override_string";
    public static const string KeyDataLimitThresholdBytesLong = "data_limit_threshold_bytes_long";
    public static const string KeyDataWarningThresholdBytesLong = "data_warning_threshold_bytes_long";
    public static const string KeyDefaultVmNumberString = "default_vm_number_string";
    public static const string KeyDialStringReplaceStringArray = "dial_string_replace_string_array";
    public static const string KeyEditableVoicemailNumberBool = "editable_voicemail_number_bool";
    public static const string KeyHideEnhanced4gLteBool = "hide_enhanced_4g_lte_bool";
    public static const string KeyImsConferenceSizeLimitInt = "ims_conference_size_limit_int";
    public static const string KeyIsImsConferenceSizeEnforcedBool = "is_ims_conference_size_enforced_bool";
    public static const string KeyMdnIsAdditionalVoicemailNumberBool = "mdn_is_additional_voicemail_number_bool";
    public static const string KeyMonthlyDataCycleDayInt = "monthly_data_cycle_day_int";
    public static const string KeyOnlySingleDcAllowedIntArray = "only_single_dc_allowed_int_array";
    public static const string KeyRcsConfigServerUrlString = "rcs_config_server_url_string";
    public static const string KeyRestartRadioOnPdpFailRegularDeactivationBool = "restart_radio_on_pdp_fail_regular_deactivation_bool";
    public static const string KeySimplifiedNetworkSettingsBool = "simplified_network_settings_bool";
    public static const string KeySmsRequiresDestinationNumberConversionBool = "sms_requires_destination_number_conversion_bool";
    public static const string KeySupport3gppCallForwardingWhileRoamingBool = "support_3gpp_call_forwarding_while_roaming_bool";
    public static const string KeyVvmClientPrefixString = "vvm_client_prefix_string";
    public static const string KeyVvmDisabledCapabilitiesStringArray = "vvm_disabled_capabilities_string_array";
    public static const string KeyVvmLegacyModeEnabledBool = "vvm_legacy_mode_enabled_bool";
    public static const string KeyVvmSslEnabledBool = "vvm_ssl_enabled_bool";

Type Changed: Android.Telephony.CellSignalStrengthGsm

Added property:

public int TimingAdvance { get; }

Type Changed: Android.Telephony.CellSignalStrengthLte

Added properties:

public int Cqi { get; }
    public int Rsrp { get; }
    public int Rsrq { get; }
    public int Rssnr { get; }

Type Changed: Android.Telephony.SimState

Added values:

    CardIoError = 8,
    CardRestricted = 9,
    NotReady = 6,
    PermDisabled = 7,

Type Changed: Android.Telephony.SmsManager

Added method:

public string CreateAppSpecificSmsToken (Android.App.PendingIntent intent);

Type Changed: Android.Telephony.SubscriptionManager

Added fields:

public static const string ActionDefaultSmsSubscriptionChanged = "android.telephony.action.DEFAULT_SMS_SUBSCRIPTION_CHANGED";
    public static const string ActionDefaultSubscriptionChanged = "android.telephony.action.DEFAULT_SUBSCRIPTION_CHANGED";
    public static const string ExtraSubscriptionIndex = "android.telephony.extra.SUBSCRIPTION_INDEX";

Modified methods:

public virtual SubscriptionInfo GetActiveSubscriptionInfoForSimSlotIndex (int slotIdx slotIndex)

Type Changed: Android.Telephony.TelephonyManager

Added fields:

public static const string ActionShowVoicemailNotification = "android.telephony.action.SHOW_VOICEMAIL_NOTIFICATION";
    public static const string ExtraCallVoicemailIntent = "android.telephony.extra.CALL_VOICEMAIL_INTENT";
    public static const string ExtraHidePublicSettings = "android.telephony.extra.HIDE_PUBLIC_SETTINGS";
    public static const string ExtraLaunchVoicemailSettingsIntent = "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT";
    public static const string ExtraNotificationCount = "android.telephony.extra.NOTIFICATION_COUNT";
    public static const string ExtraPhoneAccountHandle = "android.telephony.extra.PHONE_ACCOUNT_HANDLE";
    public static const string ExtraVoicemailNumber = "android.telephony.extra.VOICEMAIL_NUMBER";
    public static const string MetadataHideVoicemailSettingsMenu = "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU";

Obsoleted properties:

[Obsolete ("deprecated")]
    public virtual CellLocation CellLocation { get; }
    [Obsolete ("deprecated")]
    public virtual string DeviceId { get; }

Added properties:

public virtual Android.OS.PersistableBundle CarrierConfig { get; }
    public virtual bool DataEnabled { get; set; }
    public virtual string Imei { get; }
    public virtual bool IsConcurrentVoiceAndDataSupported { get; }
    public virtual string Meid { get; }
    public virtual string NetworkSpecifier { get; }
    public virtual ServiceState ServiceState { get; }
    public virtual string VisualVoicemailPackageName { get; }

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual string GetDeviceId (int slotIndex);
    [Obsolete ("deprecated")]
    public virtual IccOpenLogicalChannelResponse IccOpenLogicalChannel (string AID);

Modified methods:

public virtual string GetDeviceId (int slotId slotIndex)

Added methods:

public virtual TelephonyManager CreateForPhoneAccountHandle (Android.Telecom.PhoneAccountHandle phoneAccountHandle);
    public virtual string[] GetForbiddenPlmns ();
    public virtual string GetImei (int slotIndex);
    public virtual string GetMeid (int slotIndex);
    public virtual SimState GetSimState (int slotIndex);
    public virtual IccOpenLogicalChannelResponse IccOpenLogicalChannel (string AID, int p2);
    public virtual void SendDialerSpecialCode (string inputCode);
    public virtual void SendUssdRequest (string ussdRequest, TelephonyManager.UssdResponseCallback callback, Android.OS.Handler handler);
    public virtual void SendVisualVoicemailSms (string number, int port, string text, Android.App.PendingIntent sentIntent);
    public virtual void SetVisualVoicemailSmsFilterSettings (VisualVoicemailSmsFilterSettings settings);
    public virtual void SetVoicemailRingtoneUri (Android.Telecom.PhoneAccountHandle phoneAccountHandle, Android.Net.Uri uri);
    public virtual void SetVoicemailVibrationEnabled (Android.Telecom.PhoneAccountHandle phoneAccountHandle, bool enabled);

New Type Android.Telephony.UssdResultCode

[Serializable]
public enum UssdResultCode {
    ErrorServiceUnavail = -2,
    ReturnFailure = -1,
}

New Type Android.Telephony.VisualVoicemailService

public abstract class VisualVoicemailService : Android.App.Service, Android.Content.IComponentCallbacks, Android.Content.IComponentCallbacks2, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public VisualVoicemailService ();
    protected VisualVoicemailService (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // fields
    public static const string ServiceInterface = "android.telephony.VisualVoicemailService";
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public override Android.OS.IBinder OnBind (Android.Content.Intent intent);
    public virtual void OnCellServiceConnected (VisualVoicemailService.VisualVoicemailTask task, Android.Telecom.PhoneAccountHandle phoneAccountHandle);
    public virtual void OnSimRemoved (VisualVoicemailService.VisualVoicemailTask task, Android.Telecom.PhoneAccountHandle phoneAccountHandle);
    public virtual void OnSmsReceived (VisualVoicemailService.VisualVoicemailTask task, VisualVoicemailSms sms);
    public virtual void OnStopped (VisualVoicemailService.VisualVoicemailTask task);

    // inner types
    public class VisualVoicemailTask : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        protected VisualVoicemailService (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public void Finish ();
    }
}

New Type Android.Telephony.VisualVoicemailSms

public sealed class VisualVoicemailSms : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public Android.OS.Bundle Fields { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public string MessageBody { get; }
    public Android.Telecom.PhoneAccountHandle PhoneAccountHandle { get; }
    public string Prefix { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Telephony.VisualVoicemailSmsFilterSettings

public sealed class VisualVoicemailSmsFilterSettings : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const int DestinationPortAny;
    public static const int DestinationPortDataSms;
    // properties
    public string ClientPrefix { get; set; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public int DestinationPort { get; set; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public System.Collections.IList OriginatingNumbers { get; set; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public VisualVoicemailSmsFilterSettings ();
        protected VisualVoicemailSmsFilterSettings (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual VisualVoicemailSmsFilterSettings Build ();
        public virtual VisualVoicemailSmsFilterSettings.Builder SetClientPrefix (string clientPrefix);
        public virtual VisualVoicemailSmsFilterSettings.Builder SetDestinationPort (int destinationPort);
        public virtual VisualVoicemailSmsFilterSettings.Builder SetOriginatingNumbers (System.Collections.Generic.IList<string> originatingNumbers);
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

Namespace Android.Test.Mock

Type Changed: Android.Test.Mock.MockContext

Added methods:

public override Android.Content.Context CreateContextForSplit (string splitName);
    public override Android.Content.Intent RegisterReceiver (Android.Content.BroadcastReceiver receiver, Android.Content.IntentFilter filter, Android.Content.ActivityFlags flags);
    public override Android.Content.Intent RegisterReceiver (Android.Content.BroadcastReceiver receiver, Android.Content.IntentFilter filter, string broadcastPermission, Android.OS.Handler scheduler, Android.Content.ActivityFlags flags);
    public override void RevokeUriPermission (string targetPackage, Android.Net.Uri uri, Android.Content.ActivityFlags modeFlags);
    public override Android.Content.ComponentName StartForegroundService (Android.Content.Intent service);

Type Changed: Android.Test.Mock.MockPackageManager

Added properties:

public override int InstantAppCookieMaxBytes { get; }
    public override bool IsInstantApp { get; }

Added methods:

public override bool CanRequestPackageInstalls ();
    public override void ClearInstantAppCookie ();
    public override Android.Content.PM.ChangedPackages GetChangedPackages (int sequenceNumber);
    public override byte[] GetInstantAppCookie ();
    public override Android.Content.PM.PackageInfo GetPackageInfo (Android.Content.PM.VersionedPackage versionedPackage, Android.Content.PM.PackageInfoFlags flags);
    public override System.Collections.Generic.IList<Android.Content.PM.SharedLibraryInfo> GetSharedLibraries (Android.Content.PM.PackageInstallReason flags);
    public override bool InvokeIsInstantApp (string packageName);
    public override void SetApplicationCategoryHint (string packageName, int categoryHint);
    public override void UpdateInstantAppCookie (byte[] cookie);

Namespace Android.Text

Type Changed: Android.Text.BidiFormatter

Added methods:

public bool IsRtl (Java.Lang.ICharSequence str);
    public Java.Lang.ICharSequence UnicodeWrapFormatted (Java.Lang.ICharSequence str);
    public Java.Lang.ICharSequence UnicodeWrapFormatted (Java.Lang.ICharSequence str, ITextDirectionHeuristic heuristic);
    public Java.Lang.ICharSequence UnicodeWrapFormatted (Java.Lang.ICharSequence str, bool isolate);
    public Java.Lang.ICharSequence UnicodeWrapFormatted (Java.Lang.ICharSequence str, ITextDirectionHeuristic heuristic, bool isolate);

Type Changed: Android.Text.StaticLayout

Type Changed: Android.Text.StaticLayout.Builder

Added method:

public StaticLayout.Builder SetJustificationMode (JustificationMode justificationMode);

Type Changed: Android.Text.TextUtils

Obsoleted methods:

[Obsolete ("deprecated")]
    public static string CommaEllipsize (string text, TextPaint p, float avail, string oneMore, string more);
    [Obsolete ("deprecated")]
    public static Java.Lang.ICharSequence CommaEllipsizeFormatted (Java.Lang.ICharSequence text, TextPaint p, float avail, string oneMore, string more);

New Type Android.Text.JustificationMode

[Serializable]
public enum JustificationMode {
    InterWord = 1,
    None = 0,
}

Namespace Android.Text.Method

Type Changed: Android.Text.Method.DateKeyListener

Added constructor:

public DateKeyListener (Java.Util.Locale locale);

Obsoleted properties:

[Obsolete ("deprecated")]
    public static DateKeyListener Instance { get; }

Added method:

public static DateKeyListener GetInstance (Java.Util.Locale locale);

Type Changed: Android.Text.Method.DateTimeKeyListener

Added constructor:

public DateTimeKeyListener (Java.Util.Locale locale);

Obsoleted properties:

[Obsolete ("deprecated")]
    public static DateTimeKeyListener Instance { get; }

Added method:

public static DateTimeKeyListener GetInstance (Java.Util.Locale locale);

Type Changed: Android.Text.Method.DigitsKeyListener

Added constructors:

public DigitsKeyListener (Java.Util.Locale locale);
    public DigitsKeyListener (Java.Util.Locale locale, bool sign, bool decimal);

Obsoleted properties:

[Obsolete ("deprecated")]
    public static DigitsKeyListener Instance { get; }

Obsoleted methods:

[Obsolete ("deprecated")]
    public static DigitsKeyListener GetInstance (bool sign, bool decimal);

Added methods:

public static DigitsKeyListener GetInstance (Java.Util.Locale locale);
    public static DigitsKeyListener GetInstance (Java.Util.Locale locale, bool sign, bool decimal);

Type Changed: Android.Text.Method.TimeKeyListener

Added constructor:

public TimeKeyListener (Java.Util.Locale locale);

Obsoleted properties:

[Obsolete ("deprecated")]
    public static TimeKeyListener Instance { get; }

Added method:

public static TimeKeyListener GetInstance (Java.Util.Locale locale);

Namespace Android.Transitions

New Type Android.Transitions.TransitionListenerAdapter

public abstract class TransitionListenerAdapter : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public TransitionListenerAdapter ();
    protected TransitionListenerAdapter (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void OnTransitionCancel (Transition transition);
    public virtual void OnTransitionEnd (Transition transition);
    public virtual void OnTransitionPause (Transition transition);
    public virtual void OnTransitionResume (Transition transition);
    public virtual void OnTransitionStart (Transition transition);
}

Namespace Android.Util

New Type Android.Util.Half

public sealed class Half : Java.Lang.Number, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // constructors
    public Half (double value);
    public Half (short value);
    public Half (float value);
    public Half (string value);
    // fields
    public static const short Epsilon;
    public static const short LowestValue;
    public static const int MaxExponent;
    public static const short MaxValue;
    public static const int MinExponent;
    public static const short MinNormal;
    public static const short MinValue;
    public static const short NaN;
    public static const short NegativeInfinity;
    public static const short NegativeZero;
    public static const short PositiveInfinity;
    public static const short PositiveZero;
    public static const int Size;
    // properties
    public bool IsNaN { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static short Abs (short h);
    public static short Ceil (short h);
    public static int Compare (short x, short y);
    public int CompareTo (Half h);
    public static short CopySign (short magnitude, short sign);
    public override double DoubleValue ();
    public static bool Equals (short x, short y);
    public override float FloatValue ();
    public static short Floor (short h);
    public static int GetExponent (short h);
    public static int GetSign (short h);
    public static int GetSignificand (short h);
    public static bool Greater (short x, short y);
    public static bool GreaterEquals (short x, short y);
    public static int HalfToIntBits (short h);
    public static int HalfToRawIntBits (short h);
    public static short HalfToShortBits (short h);
    public short HalfValue ();
    public static int HashCode (short h);
    public static short IntBitsToHalf (int bits);
    public override int IntValue ();
    public static bool InvokeIsNaN (short h);
    public static bool IsInfinite (short h);
    public static bool IsNormalized (short h);
    public static bool Less (short x, short y);
    public static bool LessEquals (short x, short y);
    public override long LongValue ();
    public static short Max (short x, short y);
    public static short Min (short x, short y);
    public static short ParseHalf (string s);
    public static short Round (short h);
    public static float ToFloat (short h);
    public static short ToHalf (float f);
    public static string ToHexString (short h);
    public static string ToString (short h);
    public static short Trunc (short h);
    public static Half ValueOf (short h);
    public static Half ValueOf (float f);
    public static Half ValueOf (string s);
}

Namespace Android.Views

Type Changed: Android.Views.AutofillFlags

Added value:

    IncludeNotImportantViews = 1,

Type Changed: Android.Views.Axis

Added value:

    Scroll = 26,

Type Changed: Android.Views.Display

Added properties:

public virtual bool IsHdr { get; }
    public virtual bool IsWideColorGamut { get; }

Type Changed: Android.Views.DisplayState

Added value:

    Vr = 5,

Type Changed: Android.Views.FocusFinder

Added method:

public virtual View FindNextKeyboardNavigationCluster (View root, View currentCluster, FocusSearchDirection direction);

Type Changed: Android.Views.FrameMetrics

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.Views.FrameMetricsId enum directly instead of this field.")]
    public static const FrameMetricsId IntendedVsyncTimestamp;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.FrameMetricsId enum directly instead of this field.")]
    public static const FrameMetricsId VsyncTimestamp;

Type Changed: Android.Views.FrameMetricsId

Added values:

    IntendedVsyncTimestamp = 10,
    VsyncTimestamp = 11,

Type Changed: Android.Views.IViewParent

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void InvalidateChild (View child, Android.Graphics.Rect r);
    [Obsolete ("deprecated")]
    public virtual IViewParent InvalidateChildInParent (int[] location, Android.Graphics.Rect r);

Added method:

public virtual View KeyboardNavigationClusterSearch (View currentCluster, FocusSearchDirection direction);

Type Changed: Android.Views.InputDevice

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.Views.InputSourceType enum directly instead of this field.")]
    public static const InputSourceType SourceMouseRelative;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.InputSourceType enum directly instead of this field.")]
    public static const InputSourceType SourceRotaryEncoder;

Type Changed: Android.Views.InputSourceType

Added values:

    MouseRelative = 131076,
    RotaryEncoder = 4194304,

Type Changed: Android.Views.Menu

Added field:

public static const int SupportedModifiersMask;

Type Changed: Android.Views.PixelCopy

Added methods:

public static void Request (Window source, Android.Graphics.Bitmap dest, PixelCopy.IOnPixelCopyFinishedListener listener, Android.OS.Handler listenerThread);
    public static void Request (Surface source, Android.Graphics.Rect srcRect, Android.Graphics.Bitmap dest, PixelCopy.IOnPixelCopyFinishedListener listener, Android.OS.Handler listenerThread);
    public static void Request (SurfaceView source, Android.Graphics.Rect srcRect, Android.Graphics.Bitmap dest, PixelCopy.IOnPixelCopyFinishedListener listener, Android.OS.Handler listenerThread);
    public static void Request (Window source, Android.Graphics.Rect srcRect, Android.Graphics.Bitmap dest, PixelCopy.IOnPixelCopyFinishedListener listener, Android.OS.Handler listenerThread);

Type Changed: Android.Views.SystemUiFlags

Added value:

    LightNavigationBar = 16,

Type Changed: Android.Views.View

Added fields:

[Obsolete ("This constant will be removed in the future version. Use Android.Views.AutofillFlags enum directly instead of this field.")]
    public static const AutofillFlags AutofillFlagIncludeNotImportantViews;
    public static const string AutofillHintCreditCardExpirationDate = "creditCardExpirationDate";
    public static const string AutofillHintCreditCardExpirationDay = "creditCardExpirationDay";
    public static const string AutofillHintCreditCardExpirationMonth = "creditCardExpirationMonth";
    public static const string AutofillHintCreditCardExpirationYear = "creditCardExpirationYear";
    public static const string AutofillHintCreditCardNumber = "creditCardNumber";
    public static const string AutofillHintCreditCardSecurityCode = "creditCardSecurityCode";
    public static const string AutofillHintEmailAddress = "emailAddress";
    public static const string AutofillHintName = "name";
    public static const string AutofillHintPassword = "password";
    public static const string AutofillHintPhone = "phone";
    public static const string AutofillHintPostalAddress = "postalAddress";
    public static const string AutofillHintPostalCode = "postalCode";
    public static const string AutofillHintUsername = "username";

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.AutofillType enum directly instead of this field.")]
    public static const AutofillType AutofillTypeDate;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.AutofillType enum directly instead of this field.")]
    public static const AutofillType AutofillTypeList;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.AutofillType enum directly instead of this field.")]
    public static const AutofillType AutofillTypeNone;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.AutofillType enum directly instead of this field.")]
    public static const AutofillType AutofillTypeText;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.AutofillType enum directly instead of this field.")]
    public static const AutofillType AutofillTypeToggle;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.ViewFocusability enum directly instead of this field.")]
    public static const ViewFocusability FocusableAuto;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.ImportantForAutofill enum directly instead of this field.")]
    public static const ImportantForAutofill ImportantForAutofillAuto;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.ImportantForAutofill enum directly instead of this field.")]
    public static const ImportantForAutofill ImportantForAutofillNo;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.ImportantForAutofill enum directly instead of this field.")]
    public static const ImportantForAutofill ImportantForAutofillNoExcludeDescendants;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.ImportantForAutofill enum directly instead of this field.")]
    public static const ImportantForAutofill ImportantForAutofillYes;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.ImportantForAutofill enum directly instead of this field.")]
    public static const ImportantForAutofill ImportantForAutofillYesExcludeDescendants;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.ViewFocusability enum directly instead of this field.")]
    public static const ViewFocusability NotFocusable;

    [Obsolete ("This constant will be removed in the future version. Use Android.Views.SystemUiFlags enum directly instead of this field.")]
    public static const SystemUiFlags SystemUiFlagLightNavigationBar;

Added properties:

public Autofill.AutofillId AutofillId { get; }
    public virtual AutofillType AutofillType { get; }
    public virtual Autofill.AutofillValue AutofillValue { get; }
    public bool DefaultFocusHighlightEnabled { get; set; }
    public bool FocusedByDefault { get; set; }
    public virtual bool HasExplicitFocusable { get; }
    public virtual bool HasPointerCapture { get; }
    public virtual ImportantForAutofill ImportantForAutofill { get; set; }
    public bool IsImportantForAutofill { get; }
    public bool KeyboardNavigationCluster { get; set; }
    public virtual int NextClusterForwardId { get; set; }
    public string TooltipText { get; set; }
    public virtual Java.Lang.ICharSequence TooltipTextFormatted { get; set; }

Added event:

public event System.EventHandler<View.CapturedPointerEventArgs> CapturedPointer;

Added methods:

public virtual void AddExtraDataToAccessibilityNodeInfo (Accessibility.AccessibilityNodeInfo info, string extraDataKey, Android.OS.Bundle arguments);
    public virtual void AddKeyboardNavigationClusters (System.Collections.Generic.ICollection<View> views, FocusSearchDirection direction);
    public virtual void Autofill (Android.Util.SparseArray values);
    public virtual void Autofill (Autofill.AutofillValue value);
    public virtual bool DispatchCapturedPointerEvent (MotionEvent e);
    public virtual void DispatchPointerCaptureChanged (bool hasCapture);
    public virtual void DispatchProvideAutofillStructure (ViewStructure structure, AutofillFlags flags);
    public virtual string[] GetAutofillHints ();
    public virtual ViewFocusability GetFocusable ();
    public virtual View KeyboardNavigationClusterSearch (View currentCluster, FocusSearchDirection direction);
    public virtual bool OnCapturedPointerEvent (MotionEvent e);
    public virtual void OnPointerCaptureChange (bool hasCapture);
    public virtual void OnProvideAutofillStructure (ViewStructure structure, AutofillFlags flags);
    public virtual void OnProvideAutofillVirtualStructure (ViewStructure structure, AutofillFlags flags);
    public virtual void ReleasePointerCapture ();
    public virtual void RequestPointerCapture ();
    public virtual bool RestoreDefaultFocus ();
    public virtual void SetAutofillHints (string[] autofillHints);
    public virtual void SetFocusable (ViewFocusability focusable);
    public virtual void SetOnCapturedPointerListener (View.IOnCapturedPointerListener l);

Type Changed: Android.Views.View.AccessibilityDelegate

Added method:

public virtual void AddExtraDataToAccessibilityNodeInfo (View host, Accessibility.AccessibilityNodeInfo info, string extraDataKey, Android.OS.Bundle arguments);

New Type Android.Views.CapturedPointerEventArgs

public class CapturedPointerEventArgs : System.EventArgs {
    // constructors
    public View (bool handled, View view, MotionEvent e);
    // properties
    public MotionEvent Event { get; }
    public bool Handled { get; set; }
    public View View { get; }
}

New Type Android.Views.IOnCapturedPointerListener

public interface IOnCapturedPointerListener : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual bool OnCapturedPointer (View view, MotionEvent e);
}

Type Changed: Android.Views.ViewConfiguration

Added properties:

public virtual float ScaledHorizontalScrollFactor { get; }
    public virtual float ScaledVerticalScrollFactor { get; }

Type Changed: Android.Views.ViewGroup

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void InvalidateChild (View child, Android.Graphics.Rect dirty);
    [Obsolete ("deprecated")]
    public virtual IViewParent InvalidateChildInParent (int[] location, Android.Graphics.Rect dirty);

Added method:

public virtual void OnDescendantInvalidated (View child, View target);

Type Changed: Android.Views.ViewStructure

Added property:

public virtual Autofill.AutofillId AutofillId { get; set; }

Added methods:

public virtual ViewStructure.HtmlInfo.Builder NewHtmlInfoBuilder (string tagName);
    public virtual void SetAutofillHints (string[] hint);
    public virtual void SetAutofillId (Autofill.AutofillId parentId, int virtualId);
    public virtual void SetAutofillOptions (Java.Lang.ICharSequence[] options);
    public void SetAutofillOptions (string[] options);
    public virtual void SetAutofillType (AutofillType type);
    public virtual void SetAutofillValue (Autofill.AutofillValue value);
    public virtual void SetDataIsSensitive (bool sensitive);
    public virtual void SetHtmlInfo (ViewStructure.HtmlInfo htmlInfo);
    public virtual void SetInputType (int inputType);
    public virtual void SetLocaleList (Android.OS.LocaleList localeList);
    public virtual void SetOpaque (bool opaque);
    public virtual void SetWebDomain (string domain);

Type Changed: Android.Views.Window

Added property:

public virtual Android.Content.PM.ActivityColorMode ColorMode { get; set; }

Type Changed: Android.Views.WindowManagerLayoutParams

Added field:

[Obsolete ("This constant will be removed in the future version. Use Android.Views.WindowRotationAnimation enum directly instead of this field.")]
    public static const WindowRotationAnimation RotationAnimationSeamless;

Added property:

public virtual Android.Content.PM.ActivityColorMode ColorMode { get; set; }

Type Changed: Android.Views.WindowManagerTypes

Added value:

    ApplicationOverlay = 2038,

Type Changed: Android.Views.WindowRotationAnimation

Added value:

    Seamless = 3,

New Type Android.Views.AutofillType

[Serializable]
public enum AutofillType {
    Date = 4,
    List = 3,
    None = 0,
    Text = 1,
    Toggle = 2,
}

New Type Android.Views.ImportantForAutofill

[Serializable]
public enum ImportantForAutofill {
    Auto = 0,
    No = 2,
    NoExcludeDescendants = 8,
    Yes = 1,
    YesExcludeDescendants = 4,
}

New Type Android.Views.ViewFocusability

[Serializable]
public enum ViewFocusability {
    Focusable = 1,
    FocusableAuto = 16,
    NotFocusable = 0,
}

Namespace Android.Views.Accessibility

Type Changed: Android.Views.Accessibility.AccessibilityManager

Added methods:

public void AddAccessibilityStateChangeListener (AccessibilityManager.IAccessibilityStateChangeListener listener, Android.OS.Handler handler);
    public void AddTouchExplorationStateChangeListener (AccessibilityManager.ITouchExplorationStateChangeListener listener, Android.OS.Handler handler);

Type Changed: Android.Views.Accessibility.AccessibilityNodeInfo

Added fields:

public static const string ActionArgumentMoveWindowX = "ACTION_ARGUMENT_MOVE_WINDOW_X";
    public static const string ActionArgumentMoveWindowY = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
    public static const string ExtraDataTextCharacterLocationArgLength = "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH";
    public static const string ExtraDataTextCharacterLocationArgStartIndex = "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX";
    public static const string ExtraDataTextCharacterLocationKey = "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_KEY";

Added properties:

public virtual System.Collections.Generic.IList<string> AvailableExtraData { get; set; }
    public string HintText { get; set; }
    public virtual Java.Lang.ICharSequence HintTextFormatted { get; set; }
    public virtual bool ShowingHintText { get; set; }

Added method:

public virtual bool RefreshWithExtraData (string extraDataKey, Android.OS.Bundle args);

Type Changed: Android.Views.Accessibility.AccessibilityNodeInfo.AccessibilityAction

Added property:

public static AccessibilityNodeInfo.AccessibilityAction ActionMoveWindow { get; }

Type Changed: Android.Views.Accessibility.AccessibilityNodeProvider

Added method:

public virtual void AddExtraDataToAccessibilityNodeInfo (int virtualViewId, AccessibilityNodeInfo info, string extraDataKey, Android.OS.Bundle arguments);

Type Changed: Android.Views.Accessibility.AccessibilityWindowInfo

Added property:

public bool IsInPictureInPictureMode { get; }

Namespace Android.Views.InputMethods

Type Changed: Android.Views.InputMethods.ImeFlags

Added value:

    NoPersonalizedLearning = 16777216,

Namespace Android.Webkit

Type Changed: Android.Webkit.ClientError

Added value:

    UnsafeResource = -16,

Type Changed: Android.Webkit.WebSettings

Added property:

public virtual bool SafeBrowsingEnabled { get; set; }

Type Changed: Android.Webkit.WebView

Added properties:

public static Android.Content.PM.PackageInfo CurrentWebViewPackage { get; }
    public virtual bool RendererPriorityWaivedWhenNotVisible { get; }
    public virtual RendererPriority RendererRequestedPriority { get; }
    public virtual WebChromeClient WebChromeClient { get; }
    public virtual WebViewClient WebViewClient { get; }

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual string[] GetHttpAuthUsernamePassword (string host, string realm);
    [Obsolete ("deprecated")]
    public virtual void SetHttpAuthUsernamePassword (string host, string realm, string username, string password);

Added method:

public virtual void SetRendererPriorityPolicy (RendererPriority rendererRequestedPriority, bool waivedWhenNotVisible);

Type Changed: Android.Webkit.WebViewClient

Added method:

public virtual bool OnRenderProcessGone (WebView view, RenderProcessGoneDetail detail);

Type Changed: Android.Webkit.WebViewDatabase

Added methods:

public virtual string[] GetHttpAuthUsernamePassword (string host, string realm);
    public virtual void SetHttpAuthUsernamePassword (string host, string realm, string username, string password);

New Type Android.Webkit.RenderProcessGoneDetail

public abstract class RenderProcessGoneDetail : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public RenderProcessGoneDetail ();
    protected RenderProcessGoneDetail (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual bool DidCrash ();
    public virtual int RendererPriorityAtExit ();
}

New Type Android.Webkit.RendererPriority

[Serializable]
public enum RendererPriority {
    Bound = 1,
    Important = 2,
    Waived = 0,
}

Namespace Android.Widget

Type Changed: Android.Widget.ArrayAdapter

Added methods:

public string[] GetAutofillOptions ();
    public virtual Java.Lang.ICharSequence[] GetAutofillOptionsFormatted ();

Type Changed: Android.Widget.Chronometer

Added property:

public virtual bool IsTheFinalCountDown { get; }

Type Changed: Android.Widget.DatePicker

Added event:

public event System.EventHandler<DatePicker.DateChangedEventArgs> DateChanged;

Added method:

public virtual void SetOnDateChangedListener (DatePicker.IOnDateChangedListener onDateChangedListener);

Type Changed: Android.Widget.ProgressBar

Added properties:

public virtual bool IsAnimating { get; }
    public virtual int Min { get; set; }

Type Changed: Android.Widget.TextView

Added properties:

public virtual int AutoSizeMaxTextSize { get; }
    public virtual int AutoSizeMinTextSize { get; }
    public virtual int AutoSizeStepGranularity { get; }
    public virtual AutoSizeTextType AutoSizeTextType { get; }
    public virtual string FontVariationSettings { get; }
    public virtual Android.Text.JustificationMode JustificationMode { get; set; }
    public virtual Android.Views.TextClassifiers.ITextClassifier TextClassifier { get; set; }

Modified methods:

public virtual void SetMaxEms (int maxems maxEms)
    public virtual void SetMaxHeight (int maxHeight maxPixels)
    public virtual void SetMaxLines (int maxlines maxLines)
    public virtual void SetMaxWidth (int maxpixels maxPixels)
    public virtual void SetMinEms (int minems minEms)
    public virtual void SetMinHeight (int minHeight minPixels)
    public virtual void SetMinLines (int minlines minLines)
    public virtual void SetMinWidth (int minpixels minPixels)

Added methods:

public virtual int[] GetAutoSizeTextAvailableSizes ();
    public virtual void SetAutoSizeTextTypeUniformWithConfiguration (int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit);
    public virtual void SetAutoSizeTextTypeUniformWithPresetSizes (int[] presetSizes, int unit);
    public virtual void SetAutoSizeTextTypeWithDefaults (AutoSizeTextType autoSizeTextType);
    public virtual bool SetFontVariationSettings (string fontVariationSettings);

Type Changed: Android.Widget.TimePicker

Added method:

public virtual bool ValidateInput ();

Type Changed: Android.Widget.VideoView

Added methods:

public virtual void SetAudioAttributes (Android.Media.AudioAttributes attributes);
    public virtual void SetAudioFocusRequest (Android.Media.AudioFocus focusGain);

New Type Android.Widget.AutoSizeTextType

[Serializable]
public enum AutoSizeTextType {
    None = 0,
    Uniform = 1,
}

Namespace Dalvik.Bytecode

Type Changed: Dalvik.Bytecode.Opcodes

Added fields:

public static const int OpInvokeCustom;
    public static const int OpInvokeCustomRange;
    public static const int OpInvokePolymorphic;
    public static const int OpInvokePolymorphicRange;

Namespace Dalvik.SystemInterop

Type Changed: Dalvik.SystemInterop.DexFile

Obsoleted methods:

[Obsolete ("deprecated")]
    public static DexFile LoadDex (string sourcePathName, string outputPathName, int flags);

New Type Dalvik.SystemInterop.InMemoryDexClassLoader

public sealed class InMemoryDexClassLoader : Dalvik.SystemInterop.BaseDexClassLoader, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public InMemoryDexClassLoader (Java.Nio.ByteBuffer dexBuffer, Java.Lang.ClassLoader parent);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

Namespace Java.IO

Type Changed: Java.IO.File

Added method:

public virtual Java.Nio.FileNio.IPath ToPath ();

Namespace Java.Lang

Type Changed: Java.Lang.AbstractStringBuilder

Added interface:

IAppendable

Added methods:

public virtual IAppendable Append (ICharSequence s);
    public virtual IAppendable Append (char c);
    public IAppendable Append (string s);
    public virtual IAppendable Append (ICharSequence s, int start, int end);
    public IAppendable Append (string s, int start, int end);
    public virtual string ToString ();

Type Changed: Java.Lang.Byte

Added methods:

public static int ToUnsignedInt (sbyte x);
    public static long ToUnsignedLong (sbyte x);

Type Changed: Java.Lang.Character

Type Changed: Java.Lang.Character.UnicodeBlock

Added properties:

public static Character.UnicodeBlock ArabicExtendedA { get; }
    public static Character.UnicodeBlock ArabicMathematicalAlphabeticSymbols { get; }
    public static Character.UnicodeBlock Chakma { get; }
    public static Character.UnicodeBlock MeeteiMayekExtensions { get; }
    public static Character.UnicodeBlock MeroiticCursive { get; }
    public static Character.UnicodeBlock MeroiticHieroglyphs { get; }
    public static Character.UnicodeBlock Miao { get; }
    public static Character.UnicodeBlock Sharada { get; }
    public static Character.UnicodeBlock SoraSompeng { get; }
    public static Character.UnicodeBlock SundaneseSupplement { get; }
    public static Character.UnicodeBlock Takri { get; }

Type Changed: Java.Lang.Character.UnicodeScript

Added properties:

public static Character.UnicodeScript Chakma { get; }
    public static Character.UnicodeScript MeroiticCursive { get; }
    public static Character.UnicodeScript MeroiticHieroglyphs { get; }
    public static Character.UnicodeScript Miao { get; }
    public static Character.UnicodeScript Sharada { get; }
    public static Character.UnicodeScript SoraSompeng { get; }
    public static Character.UnicodeScript Takri { get; }

Type Changed: Java.Lang.Class

Added interface:

Reflect.IAnnotatedElement

Added property:

public string TypeName { get; }

Modified methods:

public bool IsAnnotationPresent (Class annotationType annotationClass)
    public bool IsAssignableFrom (Class c cls)
    public bool IsInstance (Object object obj)

Added method:

public string ToGenericString ();

Type Changed: Java.Lang.Integer

Added methods:

public static int CompareUnsigned (int x, int y);
    public static int DivideUnsigned (int dividend, int divisor);
    public static int ParseUnsignedInt (string s);
    public static int ParseUnsignedInt (string s, int radix);
    public static int RemainderUnsigned (int dividend, int divisor);
    public static long ToUnsignedLong (int x);
    public static string ToUnsignedString (int i);
    public static string ToUnsignedString (int i, int radix);

Type Changed: Java.Lang.Long

Added methods:

public static int CompareUnsigned (long x, long y);
    public static long DivideUnsigned (long dividend, long divisor);
    public static long ParseUnsignedLong (string s);
    public static long ParseUnsignedLong (string s, int radix);
    public static long RemainderUnsigned (long dividend, long divisor);
    public static string ToUnsignedString (long i);
    public static string ToUnsignedString (long i, int radix);

Type Changed: Java.Lang.Package

Modified methods:

public virtual bool IsAnnotationPresent (Class annotationType annotationClass)

Type Changed: Java.Lang.Process

Added property:

public virtual bool IsAlive { get; }

Added methods:

public virtual Process DestroyForcibly ();
    public virtual bool WaitFor (long timeout, Java.Util.Concurrent.TimeUnit unit);
    public System.Threading.Tasks.Task<bool> WaitForAsync (long timeout, Java.Util.Concurrent.TimeUnit unit);

Type Changed: Java.Lang.ProcessBuilder

Added methods:

public ProcessBuilder InheritIO ();
    public ProcessBuilder.Redirect RedirectError ();
    public ProcessBuilder RedirectError (Java.IO.File file);
    public ProcessBuilder RedirectError (ProcessBuilder.Redirect destination);
    public ProcessBuilder.Redirect RedirectInput ();
    public ProcessBuilder RedirectInput (Java.IO.File file);
    public ProcessBuilder RedirectInput (ProcessBuilder.Redirect source);
    public ProcessBuilder.Redirect RedirectOutput ();
    public ProcessBuilder RedirectOutput (Java.IO.File file);
    public ProcessBuilder RedirectOutput (ProcessBuilder.Redirect destination);

Type Changed: Java.Lang.Runtime

Modified methods:

public virtual void TraceInstructions (bool enable on)
    public virtual void TraceMethodCalls (bool enable on)

Type Changed: Java.Lang.Short

Added methods:

public static int ToUnsignedInt (short x);
    public static long ToUnsignedLong (short x);

Type Changed: Java.Lang.String

Added methods:

public static string Join (ICharSequence delimiter, ICharSequence[] elements);
    public static string Join (ICharSequence delimiter, IIterable elements);
    public static string Join (string delimiter, IIterable elements);
    public static string Join (string delimiter, string[] elements);

Type Changed: Java.Lang.StringBuffer

Modified methods:

public virtual override final IAppendable Append (ICharSequence s)
    public virtual override final IAppendable Append (char c)
    public virtual override final IAppendable Append (ICharSequence s, int start, int end)

Type Changed: Java.Lang.StringBuilder

Modified methods:

public virtual override final IAppendable Append (ICharSequence s)
    public virtual override final IAppendable Append (char c)
    public virtual override final IAppendable Append (ICharSequence s, int start, int end)

Type Changed: Java.Lang.ThreadLocal

Added method:

public static ThreadLocal WithInitial (Java.Util.Functions.ISupplier supplier);

New Type Java.Lang.BootstrapMethodError

public class BootstrapMethodError : Java.Lang.LinkageError, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public BootstrapMethodError ();
    public BootstrapMethodError (Throwable cause);
    public BootstrapMethodError (string s);
    protected BootstrapMethodError (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    public BootstrapMethodError (string s, Throwable cause);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

Namespace Java.Lang.Annotation

Type Changed: Java.Lang.Annotation.ElementType

Added properties:

public static ElementType TypeParameter { get; }
    public static ElementType TypeUse { get; }

New Type Java.Lang.Annotation.INative

public interface INative : Android.Runtime.IJavaObject, IAnnotation, System.IDisposable {
}

New Type Java.Lang.Annotation.NativeAttribute

public class NativeAttribute : System.Attribute {
    // constructors
    public NativeAttribute ();
}

Namespace Java.Lang.Reflect

Type Changed: Java.Lang.Reflect.AccessibleObject

Modified methods:

public virtual bool IsAnnotationPresent (Java.Lang.Class annotationType annotationClass)

Added methods:

public virtual Java.Lang.Object[] GetAnnotationsByType (Java.Lang.Class annotationClass);
    public virtual Java.Lang.Object GetDeclaredAnnotation (Java.Lang.Class annotationClass);
    public virtual Java.Lang.Object[] GetDeclaredAnnotationsByType (Java.Lang.Class annotationClass);

Type Changed: Java.Lang.Reflect.Constructor

Modified base type: Java.Lang.Reflect.AccessibleObject Java.Lang.Reflect.ExecutableModified properties:

public virtual override final Java.Lang.Class DeclaringClass { get; }
    public virtual override final bool IsSynthetic { get; }
    public override bool IsVarArgs { get; }
    public virtual override final int Modifiers { get; }
    public virtual override final string Name { get; }

Modified methods:

public override Java.Lang.Class[] GetExceptionTypes ()
    public override IType[] GetGenericExceptionTypes ()
    public override IType[] GetGenericParameterTypes ()
    public override Java.Lang.Annotation.IAnnotation[][] GetParameterAnnotations ()
    public override Java.Lang.Class[] GetParameterTypes ()
    public virtual override final ITypeVariable[] GetTypeParameters ()
    public Java.Lang.Object NewInstance (Java.Lang.Object[] args initargs)
    public override string ToGenericString ()

Removed Type Java.Lang.Reflect.Constructor.InterfaceConsts

Type Changed: Java.Lang.Reflect.Field

Modified methods:

public Java.Lang.Object Get (Java.Lang.Object object obj)
    public bool GetBoolean (Java.Lang.Object object obj)
    public sbyte GetByte (Java.Lang.Object object obj)
    public char GetChar (Java.Lang.Object object obj)
    public double GetDouble (Java.Lang.Object object obj)
    public float GetFloat (Java.Lang.Object object obj)
    public int GetInt (Java.Lang.Object object obj)
    public long GetLong (Java.Lang.Object object obj)
    public short GetShort (Java.Lang.Object object obj)
    public void Set (Java.Lang.Object object obj, Java.Lang.Object value)
    public void SetBoolean (Java.Lang.Object object obj, bool value z)
    public void SetByte (Java.Lang.Object object obj, sbyte value b)
    public void SetChar (Java.Lang.Object object obj, char value c)
    public void SetDouble (Java.Lang.Object object obj, double value d)
    public void SetFloat (Java.Lang.Object object obj, float value f)
    public void SetInt (Java.Lang.Object object obj, int value i)
    public void SetLong (Java.Lang.Object object obj, long value l)
    public void SetShort (Java.Lang.Object object obj, short value s)

Type Changed: Java.Lang.Reflect.GenericSignatureFormatError

Added constructor:

public GenericSignatureFormatError (string message);

Type Changed: Java.Lang.Reflect.IGenericDeclaration

Added interface:

IAnnotatedElement

Type Changed: Java.Lang.Reflect.Method

Modified base type: Java.Lang.Reflect.AccessibleObject Java.Lang.Reflect.ExecutableModified properties:

public virtual override final Java.Lang.Class DeclaringClass { get; }
    public virtual override final bool IsSynthetic { get; }
    public override bool IsVarArgs { get; }
    public virtual override final int Modifiers { get; }
    public virtual override final string Name { get; }

Modified methods:

public override Java.Lang.Class[] GetExceptionTypes ()
    public override IType[] GetGenericExceptionTypes ()
    public override IType[] GetGenericParameterTypes ()
    public override Java.Lang.Annotation.IAnnotation[][] GetParameterAnnotations ()
    public override Java.Lang.Class[] GetParameterTypes ()
    public virtual override final ITypeVariable[] GetTypeParameters ()
    public Java.Lang.Object Invoke (Java.Lang.Object receiver obj, Java.Lang.Object[] args)
    public override string ToGenericString ()

Removed Type Java.Lang.Reflect.Method.InterfaceConsts

Type Changed: Java.Lang.Reflect.Modifier

Added method:

public static int ParameterModifiers ();

New Type Java.Lang.Reflect.Executable

public abstract class Executable : Java.Lang.Reflect.AccessibleObject, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, IAnnotatedElement, IGenericDeclaration, IMember, System.IDisposable {
    // constructors
    protected Executable (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual Java.Lang.Class DeclaringClass { get; }
    public virtual bool IsSynthetic { get; }
    public virtual bool IsVarArgs { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual int Modifiers { get; }
    public virtual string Name { get; }
    public virtual int ParameterCount { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual Java.Lang.Class[] GetExceptionTypes ();
    public virtual IType[] GetGenericExceptionTypes ();
    public virtual IType[] GetGenericParameterTypes ();
    public virtual Java.Lang.Annotation.IAnnotation[][] GetParameterAnnotations ();
    public virtual Java.Lang.Class[] GetParameterTypes ();
    public virtual Parameter[] GetParameters ();
    public virtual ITypeVariable[] GetTypeParameters ();
    public override bool IsAnnotationPresent (Java.Lang.Class annotationType);
    public virtual string ToGenericString ();

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int Declared;
        public static const int Public;
    }
}

New Type Java.Lang.Reflect.Parameter

public sealed class Parameter : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, IAnnotatedElement, System.IDisposable {
    // properties
    public Executable DeclaringExecutable { get; }
    public bool IsImplicit { get; }
    public bool IsNamePresent { get; }
    public bool IsSynthetic { get; }
    public bool IsVarArgs { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public int Modifiers { get; }
    public string Name { get; }
    public IType ParameterizedType { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public Java.Lang.Class Type { get; }
    // methods
    public virtual Java.Lang.Object GetAnnotation (Java.Lang.Class annotationClass);
    public virtual Java.Lang.Annotation.IAnnotation[] GetAnnotations ();
    public Java.Lang.Object[] GetAnnotationsByType (Java.Lang.Class annotationClass);
    public Java.Lang.Object GetDeclaredAnnotation (Java.Lang.Class annotationClass);
    public virtual Java.Lang.Annotation.IAnnotation[] GetDeclaredAnnotations ();
    public Java.Lang.Object[] GetDeclaredAnnotationsByType (Java.Lang.Class annotationClass);
    public virtual bool IsAnnotationPresent (Java.Lang.Class annotationClass);
}

Namespace Java.Nio.Channels

Type Changed: Java.Nio.Channels.Channels

Added methods:

public static System.IO.Stream NewInputStream (IAsynchronousByteChannel ch);
    public static System.IO.Stream NewOutputStream (IAsynchronousByteChannel ch);

Type Changed: Java.Nio.Channels.DatagramChannel

Added property:

public virtual Java.Net.SocketAddress LocalAddress { get; }

Type Changed: Java.Nio.Channels.FileChannel

Added methods:

public static FileChannel Open (Java.Nio.FileNio.IPath path, Java.Nio.FileNio.IOpenOption[] options);
    public static FileChannel Open (Java.Nio.FileNio.IPath path, System.Collections.Generic.ICollection<Java.Nio.FileNio.IOpenOption> options, Java.Nio.FileNio.Attributes.IFileAttribute[] attrs);

Type Changed: Java.Nio.Channels.FileLock

Added constructor:

protected FileLock (AsynchronousFileChannel channel, long position, long size, bool shared);

Type Changed: Java.Nio.Channels.ServerSocketChannel

Added property:

public virtual Java.Net.SocketAddress LocalAddress { get; }

Type Changed: Java.Nio.Channels.SocketChannel

Added property:

public virtual Java.Net.SocketAddress LocalAddress { get; }

New Type Java.Nio.Channels.AcceptPendingException

public class AcceptPendingException : Java.Lang.IllegalStateException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public AcceptPendingException ();
    protected AcceptPendingException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.Channels.AsynchronousChannelGroup

public abstract class AsynchronousChannelGroup : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected AsynchronousChannelGroup (Spi.AsynchronousChannelProvider provider);
    protected AsynchronousChannelGroup (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual bool IsShutdown { get; }
    public virtual bool IsTerminated { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual bool AwaitTermination (long timeout, Java.Util.Concurrent.TimeUnit unit);
    public Spi.AsynchronousChannelProvider Provider ();
    public virtual void Shutdown ();
    public virtual void ShutdownNow ();
    public static AsynchronousChannelGroup WithCachedThreadPool (Java.Util.Concurrent.IExecutorService executor, int initialSize);
    public static AsynchronousChannelGroup WithFixedThreadPool (int nThreads, Java.Util.Concurrent.IThreadFactory threadFactory);
    public static AsynchronousChannelGroup WithThreadPool (Java.Util.Concurrent.IExecutorService executor);
}

New Type Java.Nio.Channels.AsynchronousFileChannel

public abstract class AsynchronousFileChannel : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ICloseable, Java.Interop.IJavaPeerable, IAsynchronousChannel, IChannel, System.IDisposable {
    // constructors
    protected AsynchronousFileChannel ();
    protected AsynchronousFileChannel (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual bool IsOpen { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void Close ();
    public virtual void Force (bool metaData);
    public Java.Util.Concurrent.IFuture Lock ();
    public void Lock (Java.Lang.Object attachment, ICompletionHandler handler);
    public virtual Java.Util.Concurrent.IFuture Lock (long position, long size, bool shared);
    public virtual void Lock (long position, long size, bool shared, Java.Lang.Object attachment, ICompletionHandler handler);
    public static AsynchronousFileChannel Open (Java.Nio.FileNio.IPath file, Java.Nio.FileNio.IOpenOption[] options);
    public static AsynchronousFileChannel Open (Java.Nio.FileNio.IPath file, System.Collections.Generic.ICollection<Java.Nio.FileNio.IOpenOption> options, Java.Util.Concurrent.IExecutorService executor, Java.Nio.FileNio.Attributes.IFileAttribute[] attrs);
    public virtual Java.Util.Concurrent.IFuture Read (Java.Nio.ByteBuffer dst, long position);
    public virtual void Read (Java.Nio.ByteBuffer dst, long position, Java.Lang.Object attachment, ICompletionHandler handler);
    public virtual long Size ();
    public virtual AsynchronousFileChannel Truncate (long size);
    public FileLock TryLock ();
    public virtual FileLock TryLock (long position, long size, bool shared);
    public virtual Java.Util.Concurrent.IFuture Write (Java.Nio.ByteBuffer src, long position);
    public virtual void Write (Java.Nio.ByteBuffer src, long position, Java.Lang.Object attachment, ICompletionHandler handler);
}

New Type Java.Nio.Channels.AsynchronousServerSocketChannel

public abstract class AsynchronousServerSocketChannel : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ICloseable, Java.Interop.IJavaPeerable, IAsynchronousChannel, IChannel, System.IDisposable {
    // constructors
    protected AsynchronousServerSocketChannel (Spi.AsynchronousChannelProvider provider);
    protected AsynchronousServerSocketChannel (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual bool IsOpen { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual Java.Net.SocketAddress LocalAddress { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual Java.Util.Concurrent.IFuture Accept ();
    public virtual void Accept (Java.Lang.Object attachment, ICompletionHandler handler);
    public AsynchronousServerSocketChannel Bind (Java.Net.SocketAddress local);
    public virtual AsynchronousServerSocketChannel Bind (Java.Net.SocketAddress local, int backlog);
    public virtual void Close ();
    public static AsynchronousServerSocketChannel Open ();
    public static AsynchronousServerSocketChannel Open (AsynchronousChannelGroup group);
    public Spi.AsynchronousChannelProvider Provider ();
    public virtual AsynchronousServerSocketChannel SetOption (Java.Net.ISocketOption name, Java.Lang.Object value);
}

New Type Java.Nio.Channels.AsynchronousSocketChannel

public abstract class AsynchronousSocketChannel : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ICloseable, Java.Interop.IJavaPeerable, IAsynchronousByteChannel, IAsynchronousChannel, IChannel, System.IDisposable {
    // constructors
    protected AsynchronousSocketChannel (Spi.AsynchronousChannelProvider provider);
    protected AsynchronousSocketChannel (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual bool IsOpen { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual Java.Net.SocketAddress LocalAddress { get; }
    public virtual Java.Net.SocketAddress RemoteAddress { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual AsynchronousSocketChannel Bind (Java.Net.SocketAddress local);
    public virtual void Close ();
    public virtual Java.Util.Concurrent.IFuture Connect (Java.Net.SocketAddress remote);
    public virtual void Connect (Java.Net.SocketAddress remote, Java.Lang.Object attachment, ICompletionHandler handler);
    public static AsynchronousSocketChannel Open ();
    public static AsynchronousSocketChannel Open (AsynchronousChannelGroup group);
    public Spi.AsynchronousChannelProvider Provider ();
    public virtual Java.Util.Concurrent.IFuture Read (Java.Nio.ByteBuffer dst);
    public virtual void Read (Java.Nio.ByteBuffer dst, Java.Lang.Object attachment, ICompletionHandler handler);
    public virtual void Read (Java.Nio.ByteBuffer dst, long timeout, Java.Util.Concurrent.TimeUnit unit, Java.Lang.Object attachment, ICompletionHandler handler);
    public virtual void Read (Java.Nio.ByteBuffer[] dsts, int offset, int length, long timeout, Java.Util.Concurrent.TimeUnit unit, Java.Lang.Object attachment, ICompletionHandler handler);
    public virtual AsynchronousSocketChannel SetOption (Java.Net.ISocketOption name, Java.Lang.Object value);
    public virtual AsynchronousSocketChannel ShutdownInput ();
    public virtual AsynchronousSocketChannel ShutdownOutput ();
    public virtual Java.Util.Concurrent.IFuture Write (Java.Nio.ByteBuffer src);
    public virtual void Write (Java.Nio.ByteBuffer src, Java.Lang.Object attachment, ICompletionHandler handler);
    public virtual void Write (Java.Nio.ByteBuffer src, long timeout, Java.Util.Concurrent.TimeUnit unit, Java.Lang.Object attachment, ICompletionHandler handler);
    public virtual void Write (Java.Nio.ByteBuffer[] srcs, int offset, int length, long timeout, Java.Util.Concurrent.TimeUnit unit, Java.Lang.Object attachment, ICompletionHandler handler);
}

New Type Java.Nio.Channels.IAsynchronousByteChannel

public interface IAsynchronousByteChannel : Android.Runtime.IJavaObject, Java.IO.ICloseable, IAsynchronousChannel, IChannel, System.IDisposable {
    // methods
    public virtual Java.Util.Concurrent.IFuture Read (Java.Nio.ByteBuffer dst);
    public virtual void Read (Java.Nio.ByteBuffer dst, Java.Lang.Object attachment, ICompletionHandler handler);
    public virtual Java.Util.Concurrent.IFuture Write (Java.Nio.ByteBuffer src);
    public virtual void Write (Java.Nio.ByteBuffer src, Java.Lang.Object attachment, ICompletionHandler handler);
}

New Type Java.Nio.Channels.IAsynchronousChannel

public interface IAsynchronousChannel : Android.Runtime.IJavaObject, Java.IO.ICloseable, IChannel, System.IDisposable {
    // methods
    public virtual void Close ();
}

New Type Java.Nio.Channels.ICompletionHandler

public interface ICompletionHandler : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual void Completed (Java.Lang.Object result, Java.Lang.Object attachment);
    public virtual void Failed (Java.Lang.Throwable exc, Java.Lang.Object attachment);
}

New Type Java.Nio.Channels.IllegalChannelGroupException

public class IllegalChannelGroupException : Java.Lang.IllegalArgumentException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public IllegalChannelGroupException ();
    protected IllegalChannelGroupException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.Channels.InterruptedByTimeoutException

public class InterruptedByTimeoutException : Java.IO.IOException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public InterruptedByTimeoutException ();
    protected InterruptedByTimeoutException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.Channels.MembershipKey

public abstract class MembershipKey : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected MembershipKey ();
    protected MembershipKey (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual bool IsValid { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual MembershipKey Block (Java.Net.InetAddress source);
    public virtual void Drop ();
    public virtual Java.Net.InetAddress Group ();
    public virtual Java.Net.NetworkInterface NetworkInterface ();
    public virtual Java.Net.InetAddress SourceAddress ();
    public virtual MembershipKey Unblock (Java.Net.InetAddress source);
}

New Type Java.Nio.Channels.ReadPendingException

public class ReadPendingException : Java.Lang.IllegalStateException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public ReadPendingException ();
    protected ReadPendingException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.Channels.ShutdownChannelGroupException

public class ShutdownChannelGroupException : Java.Lang.IllegalStateException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public ShutdownChannelGroupException ();
    protected ShutdownChannelGroupException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.Channels.WritePendingException

public class WritePendingException : Java.Lang.IllegalStateException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public WritePendingException ();
    protected WritePendingException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

Namespace Java.Nio.Channels.Spi

New Type Java.Nio.Channels.Spi.AsynchronousChannelProvider

public abstract class AsynchronousChannelProvider : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected AsynchronousChannelProvider ();
    protected AsynchronousChannelProvider (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual Java.Nio.Channels.AsynchronousChannelGroup OpenAsynchronousChannelGroup (Java.Util.Concurrent.IExecutorService executor, int initialSize);
    public virtual Java.Nio.Channels.AsynchronousChannelGroup OpenAsynchronousChannelGroup (int nThreads, Java.Util.Concurrent.IThreadFactory threadFactory);
    public virtual Java.Nio.Channels.AsynchronousServerSocketChannel OpenAsynchronousServerSocketChannel (Java.Nio.Channels.AsynchronousChannelGroup group);
    public virtual Java.Nio.Channels.AsynchronousSocketChannel OpenAsynchronousSocketChannel (Java.Nio.Channels.AsynchronousChannelGroup group);
    public static AsynchronousChannelProvider Provider ();
}

Namespace Java.Security

Type Changed: Java.Security.KeyStore

Type Changed: Java.Security.KeyStore.PasswordProtection

Added constructor:

public KeyStore (char[] password, string protectionAlgorithm, Spec.IAlgorithmParameterSpec protectionParameters);

Added properties:

public virtual string ProtectionAlgorithm { get; }
    public virtual Spec.IAlgorithmParameterSpec ProtectionParameters { get; }

Type Changed: Java.Security.KeyStore.PrivateKeyEntry

Added constructor:

public KeyStore (IPrivateKey privateKey, Cert.Certificate[] chain, System.Collections.Generic.ICollection<KeyStore.IEntryAttribute> attributes);

Added property:

public System.Collections.Generic.ICollection<KeyStore.IEntryAttribute> Attributes { get; }

Type Changed: Java.Security.KeyStore.SecretKeyEntry

Added constructor:

public KeyStore (Javax.Crypto.ISecretKey secretKey, System.Collections.Generic.ICollection<KeyStore.IEntryAttribute> attributes);

Added property:

public System.Collections.Generic.ICollection<KeyStore.IEntryAttribute> Attributes { get; }

Type Changed: Java.Security.KeyStore.TrustedCertificateEntry

Added constructor:

public KeyStore (Cert.Certificate trustedCert, System.Collections.Generic.ICollection<KeyStore.IEntryAttribute> attributes);

Added property:

public System.Collections.Generic.ICollection<KeyStore.IEntryAttribute> Attributes { get; }

New Type Java.Security.IEntryAttribute

public interface IEntryAttribute : Android.Runtime.IJavaObject, System.IDisposable {
    // properties
    public virtual string Name { get; }
    public virtual string Value { get; }
}

Type Changed: Java.Security.Provider

Added methods:

public virtual Java.Lang.Object Compute (Java.Lang.Object key, Java.Util.Functions.IBiFunction remappingFunction);
    public virtual Java.Lang.Object ComputeIfAbsent (Java.Lang.Object key, Java.Util.Functions.IFunction mappingFunction);
    public virtual Java.Lang.Object ComputeIfPresent (Java.Lang.Object key, Java.Util.Functions.IBiFunction remappingFunction);
    public virtual Java.Lang.Object GetOrDefault (Java.Lang.Object key, Java.Lang.Object defaultValue);
    public virtual Java.Lang.Object Merge (Java.Lang.Object key, Java.Lang.Object value, Java.Util.Functions.IBiFunction remappingFunction);
    public virtual Java.Lang.Object PutIfAbsent (Java.Lang.Object key, Java.Lang.Object value);
    public virtual Java.Lang.Object Replace (Java.Lang.Object key, Java.Lang.Object value);
    public virtual bool Replace (Java.Lang.Object key, Java.Lang.Object oldValue, Java.Lang.Object newValue);
    public virtual void ReplaceAll (Java.Util.Functions.IBiFunction function);

Type Changed: Java.Security.SecureRandom

Added property:

public static SecureRandom InstanceStrong { get; }

New Type Java.Security.DomainLoadStoreParameter

public sealed class DomainLoadStoreParameter : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public DomainLoadStoreParameter (Java.Net.URI configuration, System.Collections.Generic.IDictionary<System.String,Java.Security.KeyStore.IProtectionParameter> protectionParams);
    // properties
    public Java.Net.URI Configuration { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual KeyStore.IProtectionParameter ProtectionParameter { get; }
    public System.Collections.Generic.IDictionary<System.String,Java.Security.KeyStore.IProtectionParameter> ProtectionParams { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Security.PKCS12Attribute

public sealed class PKCS12Attribute : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public PKCS12Attribute (byte[] encoded);
    public PKCS12Attribute (string name, string value);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual string Name { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public virtual string Value { get; }
    // methods
    public byte[] GetEncoded ();
}

Namespace Java.Security.Cert

Type Changed: Java.Security.Cert.Certificate

Added method:

public virtual void Verify (Java.Security.IPublicKey key, Java.Security.Provider sigProvider);

Type Changed: Java.Security.Cert.X509CRL

Added method:

public virtual void Verify (Java.Security.IPublicKey key, Java.Security.Provider sigProvider);

Type Changed: Java.Security.Cert.X509Certificate

Modified methods:

public virtual override void Verify (Java.Security.IPublicKey key, Java.Security.Provider sigProvider)

Namespace Java.Security.Spec

Type Changed: Java.Security.Spec.MGF1ParameterSpec

Added property:

public static MGF1ParameterSpec Sha224 { get; }

Namespace Java.Util

Type Changed: Java.Util.Calendar

Added fields:

public static const int LongFormat;
    public static const int LongStandalone;
    public static const int NarrowFormat;
    public static const int NarrowStandalone;
    public static const int ShortFormat;
    public static const int ShortStandalone;

Added properties:

public static System.Collections.Generic.ICollection<string> AvailableCalendarTypes { get; }
    public virtual string CalendarType { get; }

Type Changed: Java.Util.Collections

Added methods:

public static INavigableMap CheckedNavigableMap (INavigableMap m, Java.Lang.Class keyType, Java.Lang.Class valueType);
    public static INavigableSet CheckedNavigableSet (INavigableSet s, Java.Lang.Class type);
    public static IQueue CheckedQueue (IQueue queue, Java.Lang.Class type);
    public static INavigableMap EmptyNavigableMap ();
    public static INavigableSet EmptyNavigableSet ();
    public static System.Collections.IDictionary EmptySortedMap ();
    public static ISortedSet EmptySortedSet ();
    public static INavigableMap SynchronizedNavigableMap (INavigableMap m);
    public static INavigableSet SynchronizedNavigableSet (INavigableSet s);
    public static INavigableMap UnmodifiableNavigableMap (INavigableMap m);
    public static INavigableSet UnmodifiableNavigableSet (INavigableSet s);

Type Changed: Java.Util.HashMap

Added methods:

public virtual Java.Lang.Object Compute (Java.Lang.Object key, Functions.IBiFunction remappingFunction);
    public virtual Java.Lang.Object ComputeIfAbsent (Java.Lang.Object key, Functions.IFunction mappingFunction);
    public virtual Java.Lang.Object ComputeIfPresent (Java.Lang.Object key, Functions.IBiFunction remappingFunction);
    public virtual Java.Lang.Object GetOrDefault (Java.Lang.Object key, Java.Lang.Object defaultValue);
    public virtual Java.Lang.Object Merge (Java.Lang.Object key, Java.Lang.Object value, Functions.IBiFunction remappingFunction);
    public virtual Java.Lang.Object PutIfAbsent (Java.Lang.Object key, Java.Lang.Object value);
    public virtual bool Remove (Java.Lang.Object key, Java.Lang.Object value);
    public virtual Java.Lang.Object Replace (Java.Lang.Object key, Java.Lang.Object value);

Type Changed: Java.Util.Locale

Added property:

public bool HasExtensions { get; }

Modified methods:

public string GetDisplayScript (Locale locale inLocale)
    public string GetDisplayVariant (Locale locale inLocale)

Added methods:

public static System.Collections.Generic.IList<Locale> Filter (System.Collections.Generic.IList<Locale.LanguageRange> priorityList, System.Collections.Generic.ICollection<Locale> locales);
    public static System.Collections.Generic.IList<Locale> Filter (System.Collections.Generic.IList<Locale.LanguageRange> priorityList, System.Collections.Generic.ICollection<Locale> locales, Locale.FilteringMode mode);
    public static System.Collections.Generic.IList<string> FilterTags (System.Collections.Generic.IList<Locale.LanguageRange> priorityList, System.Collections.Generic.ICollection<string> tags);
    public static System.Collections.Generic.IList<string> FilterTags (System.Collections.Generic.IList<Locale.LanguageRange> priorityList, System.Collections.Generic.ICollection<string> tags, Locale.FilteringMode mode);
    public static Locale Lookup (System.Collections.Generic.IList<Locale.LanguageRange> priorityList, System.Collections.Generic.ICollection<Locale> locales);
    public static string LookupTag (System.Collections.Generic.IList<Locale.LanguageRange> priorityList, System.Collections.Generic.ICollection<string> tags);
    public Locale StripExtensions ();

New Type Java.Util.FilteringMode

public sealed class FilteringMode : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static Locale.FilteringMode AutoselectFiltering { get; }
    public static Locale.FilteringMode ExtendedFiltering { get; }
    public static Locale.FilteringMode IgnoreExtendedRanges { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static Locale.FilteringMode MapExtendedRanges { get; }
    public static Locale.FilteringMode RejectExtendedRanges { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static Locale.FilteringMode ValueOf (string name);
    public static Locale.FilteringMode[] Values ();
}

New Type Java.Util.LanguageRange

public sealed class LanguageRange : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public Locale (string range);
    public Locale (string range, double weight);
    // fields
    public static const double MaxWeight;
    public static const double MinWeight;
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public string Range { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public double Weight { get; }
    // methods
    public static System.Collections.Generic.IList<Locale.LanguageRange> MapEquivalents (System.Collections.Generic.IList<Locale.LanguageRange> priorityList, System.Collections.Generic.IDictionary<System.String,System.Collections.Generic.IList<string>> map);
    public static System.Collections.Generic.IList<Locale.LanguageRange> Parse (string ranges);
    public static System.Collections.Generic.IList<Locale.LanguageRange> Parse (string ranges, System.Collections.Generic.IDictionary<System.String,System.Collections.Generic.IList<string>> map);
}

Type Changed: Java.Util.Random

Modified methods:

public virtual int NextInt (int n bound)

Type Changed: Java.Util.ResourceBundle

Added property:

public virtual string BaseBundleName { get; }

Type Changed: Java.Util.Scanner

Added constructors:

public Scanner (Java.Nio.FileNio.IPath source);
    public Scanner (Java.Nio.FileNio.IPath source, string charsetName);

New Type Java.Util.Base64

public class Base64 : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected Base64 (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static Base64.Decoder MimeDecoder { get; }
    public static Base64.Encoder MimeEncoder { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public static Base64.Decoder UrlDecoder { get; }
    public static Base64.Encoder UrlEncoder { get; }
    // methods
    public static Base64.Decoder GetDecoder ();
    public static Base64.Encoder GetEncoder ();
    public static Base64.Encoder GetMimeEncoder (int lineLength, byte[] lineSeparator);

    // inner types
    public class Decoder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        protected Base64 (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual Java.Nio.ByteBuffer Decode (Java.Nio.ByteBuffer buffer);
        public virtual byte[] Decode (byte[] src);
        public virtual byte[] Decode (string src);
        public virtual int Decode (byte[] src, byte[] dst);
        public virtual System.IO.Stream Wrap (System.IO.Stream is);
    }
    public class Encoder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        protected Base64 (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual Java.Nio.ByteBuffer Encode (Java.Nio.ByteBuffer buffer);
        public virtual byte[] Encode (byte[] src);
        public virtual int Encode (byte[] src, byte[] dst);
        public virtual string EncodeToString (byte[] src);
        public virtual Base64.Encoder WithoutPadding ();
        public virtual System.IO.Stream Wrap (System.IO.Stream os);
    }
}

Namespace Java.Util.Concurrent

Type Changed: Java.Util.Concurrent.CopyOnWriteArrayList

Modified constructors:

public CopyOnWriteArrayList (Java.Lang.Object[] array toCopyIn)
    public CopyOnWriteArrayList (System.Collections.ICollection collection c)

Modified methods:

public virtual void Add (int index, Java.Lang.Object e element)
    public virtual bool AddAll (System.Collections.ICollection collection c)
    public virtual bool AddAll (int index, System.Collections.ICollection collection c)
    public virtual int AddAllAbsent (System.Collections.ICollection collection c)
    public virtual bool AddIfAbsent (Java.Lang.Object object e)
    public virtual bool ContainsAll (System.Collections.ICollection collection c)
    public virtual int IndexOf (Java.Lang.Object object o)
    public virtual int IndexOf (Java.Lang.Object object e, int from index)
    public virtual int LastIndexOf (Java.Lang.Object object o)
    public virtual int LastIndexOf (Java.Lang.Object object e, int to index)
    public virtual bool RemoveAll (System.Collections.ICollection collection c)
    public virtual bool RetainAll (System.Collections.ICollection collection c)
    public virtual Java.Lang.Object Set (int index, Java.Lang.Object e element)
    public virtual System.Collections.IList SubList (int from fromIndex, int to toIndex)
    public virtual Java.Lang.Object[] ToArray (Java.Lang.Object[] contents a)

Added methods:

public virtual bool RemoveIf (Java.Util.Functions.IPredicate filter);
    public virtual Java.Util.ISpliterator Spliterator ();

Namespace Java.Util.Jar

Type Changed: Java.Util.Jar.Pack200

Type Changed: Java.Util.Jar.Pack200.IPacker

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void AddPropertyChangeListener (Java.Beans.IPropertyChangeListener listener);
    [Obsolete ("deprecated")]
    public virtual void RemovePropertyChangeListener (Java.Beans.IPropertyChangeListener listener);

Type Changed: Java.Util.Jar.Pack200.IUnpacker

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void AddPropertyChangeListener (Java.Beans.IPropertyChangeListener listener);
    [Obsolete ("deprecated")]
    public virtual void RemovePropertyChangeListener (Java.Beans.IPropertyChangeListener listener);

Namespace Java.Util.Logging

Type Changed: Java.Util.Logging.LogManager

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void AddPropertyChangeListener (Java.Beans.IPropertyChangeListener l);
    [Obsolete ("deprecated")]
    public virtual void RemovePropertyChangeListener (Java.Beans.IPropertyChangeListener l);

Type Changed: Java.Util.Logging.Logger

Modified properties:

public virtual Java.Util.ResourceBundle ResourceBundle { get; set; }

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual void Logrb (Level level, string sourceClass, string sourceMethod, string bundleName, string msg);
    [Obsolete ("deprecated")]
    public virtual void Logrb (Level level, string sourceClass, string sourceMethod, string bundleName, string msg, Java.Lang.Object param1);
    [Obsolete ("deprecated")]
    public virtual void Logrb (Level level, string sourceClass, string sourceMethod, string bundleName, string msg, Java.Lang.Object[] params);
    [Obsolete ("deprecated")]
    public virtual void Logrb (Level level, string sourceClass, string sourceMethod, string bundleName, string msg, Java.Lang.Throwable thrown);

Added methods:

public virtual void Config (Java.Util.Functions.ISupplier msgSupplier);
    public virtual void Fine (Java.Util.Functions.ISupplier msgSupplier);
    public virtual void Finer (Java.Util.Functions.ISupplier msgSupplier);
    public virtual void Finest (Java.Util.Functions.ISupplier msgSupplier);
    public virtual void Info (Java.Util.Functions.ISupplier msgSupplier);
    public virtual void Log (Level level, Java.Util.Functions.ISupplier msgSupplier);
    public virtual void Log (Level level, Java.Lang.Throwable thrown, Java.Util.Functions.ISupplier msgSupplier);
    public virtual void Logp (Level level, string sourceClass, string sourceMethod, Java.Util.Functions.ISupplier msgSupplier);
    public virtual void Logp (Level level, string sourceClass, string sourceMethod, Java.Lang.Throwable thrown, Java.Util.Functions.ISupplier msgSupplier);
    public virtual void Logrb (Level level, string sourceClass, string sourceMethod, Java.Util.ResourceBundle bundle, string msg, Java.Lang.Object[] params);
    public virtual void Logrb (Level level, string sourceClass, string sourceMethod, Java.Util.ResourceBundle bundle, string msg, Java.Lang.Throwable thrown);
    public virtual void Severe (Java.Util.Functions.ISupplier msgSupplier);
    public virtual void Warning (Java.Util.Functions.ISupplier msgSupplier);

Namespace Java.Util.Regex

Type Changed: Java.Util.Regex.Matcher

Added methods:

public int End (string name);
    public string Group (string name);
    public int Start (string name);

Namespace Java.Util.Zip

Type Changed: Java.Util.Zip.Adler32

Added method:

public virtual void Update (Java.Nio.ByteBuffer buffer);

Type Changed: Java.Util.Zip.CRC32

Added method:

public virtual void Update (Java.Nio.ByteBuffer buffer);

Type Changed: Java.Util.Zip.ZipEntry

Added properties:

public virtual Java.Nio.FileNio.Attributes.FileTime CreationTime { get; }
    public virtual Java.Nio.FileNio.Attributes.FileTime LastAccessTime { get; }
    public virtual Java.Nio.FileNio.Attributes.FileTime LastModifiedTime { get; }

Added methods:

public virtual ZipEntry SetCreationTime (Java.Nio.FileNio.Attributes.FileTime time);
    public virtual ZipEntry SetLastAccessTime (Java.Nio.FileNio.Attributes.FileTime time);
    public virtual ZipEntry SetLastModifiedTime (Java.Nio.FileNio.Attributes.FileTime time);

Namespace Javax.Crypto.Spec

Type Changed: Javax.Crypto.Spec.PBEParameterSpec

Added constructor:

public PBEParameterSpec (byte[] salt, int iterationCount, Java.Security.Spec.IAlgorithmParameterSpec paramSpec);

Added property:

public virtual Java.Security.Spec.IAlgorithmParameterSpec ParameterSpec { get; }

Namespace Javax.Microedition.Khronos.Egl

Type Changed: Javax.Microedition.Khronos.Egl.IEGL10

Obsoleted methods:

[Obsolete ("deprecated")]
    public virtual EGLSurface EglCreatePixmapSurface (EGLDisplay display, EGLConfig config, Java.Lang.Object native_pixmap, int[] attrib_list);

New Namespace Android.Companion

New Type Android.Companion.AssociationRequest

public sealed class AssociationRequest : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public AssociationRequest ();
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public AssociationRequest.Builder AddDeviceFilter (IDeviceFilter deviceFilter);
        public AssociationRequest Build ();
        public AssociationRequest.Builder SetSingleDevice (bool singleDevice);
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Companion.BluetoothDeviceFilter

public sealed class BluetoothDeviceFilter : Java.Lang.Object, IDeviceFilter, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public BluetoothDeviceFilter ();
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public BluetoothDeviceFilter.Builder AddServiceUuid (Android.OS.ParcelUuid serviceUuid, Android.OS.ParcelUuid serviceUuidMask);
        public BluetoothDeviceFilter Build ();
        public BluetoothDeviceFilter.Builder SetAddress (string address);
        public BluetoothDeviceFilter.Builder SetNamePattern (Java.Util.Regex.Pattern regex);
    }
}

New Type Android.Companion.BluetoothLeDeviceFilter

public sealed class BluetoothLeDeviceFilter : Java.Lang.Object, IDeviceFilter, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static int RenamePrefixLengthLimit { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public BluetoothLeDeviceFilter ();
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public BluetoothLeDeviceFilter Build ();
        public BluetoothLeDeviceFilter.Builder SetNamePattern (Java.Util.Regex.Pattern regex);
        public BluetoothLeDeviceFilter.Builder SetRawDataFilter (byte[] rawDataFilter, byte[] rawDataFilterMask);
        public BluetoothLeDeviceFilter.Builder SetRenameFromBytes (string prefix, string suffix, int bytesFrom, int bytesLength, Java.Nio.ByteOrder byteOrder);
        public BluetoothLeDeviceFilter.Builder SetRenameFromName (string prefix, string suffix, int nameFrom, int nameLength);
        public BluetoothLeDeviceFilter.Builder SetScanFilter (Android.Bluetooth.LE.ScanFilter scanFilter);
    }
}

New Type Android.Companion.CompanionDeviceManager

public sealed class CompanionDeviceManager : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const string ExtraDevice = "android.companion.extra.DEVICE";
    // properties
    public System.Collections.Generic.IList<string> Associations { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public void Associate (AssociationRequest request, CompanionDeviceManager.Callback callback, Android.OS.Handler handler);
    public void Disassociate (string deviceMacAddress);
    public bool HasNotificationAccess (Android.Content.ComponentName component);
    public void RequestNotificationAccess (Android.Content.ComponentName component);

    // inner types
    public abstract class Callback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public CompanionDeviceManager ();
        protected CompanionDeviceManager (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual void OnDeviceFound (Android.Content.IntentSender chooserLauncher);
        public virtual void OnFailure (Java.Lang.ICharSequence error);
        public void OnFailure (string error);
    }
}

New Type Android.Companion.IDeviceFilter

public interface IDeviceFilter : Android.OS.IParcelable, Android.Runtime.IJavaObject, System.IDisposable {
}

New Type Android.Companion.WifiDeviceFilter

public sealed class WifiDeviceFilter : Java.Lang.Object, IDeviceFilter, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public WifiDeviceFilter ();
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public WifiDeviceFilter Build ();
        public WifiDeviceFilter.Builder SetNamePattern (Java.Util.Regex.Pattern regex);
    }
}

New Namespace Android.Graphics.Fonts

New Type Android.Graphics.Fonts.FontVariationAxis

public sealed class FontVariationAxis : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public FontVariationAxis (string tagString, float styleValue);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public float StyleValue { get; }
    public string Tag { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static FontVariationAxis[] FromFontVariationSettings (string settings);
    public static string ToFontVariationSettings (FontVariationAxis[] axes);
}

New Namespace Android.Net.Wifi.Aware

New Type Android.Net.Wifi.Aware.AttachCallback

public class AttachCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public AttachCallback ();
    protected AttachCallback (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void OnAttachFailed ();
    public virtual void OnAttached (WifiAwareSession session);
}

New Type Android.Net.Wifi.Aware.Characteristics

public sealed class Characteristics : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public int MaxMatchFilterLength { get; }
    public int MaxServiceNameLength { get; }
    public int MaxServiceSpecificInfoLength { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Net.Wifi.Aware.DiscoverySession

public class DiscoverySession : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable, System.IDisposable {
    // constructors
    protected DiscoverySession (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void Close ();
    public virtual Android.Net.NetworkSpecifier CreateNetworkSpecifierOpen (PeerHandle peerHandle);
    public virtual Android.Net.NetworkSpecifier CreateNetworkSpecifierPassphrase (PeerHandle peerHandle, string passphrase);
    public virtual void SendMessage (PeerHandle peerHandle, int messageId, byte[] message);
}

New Type Android.Net.Wifi.Aware.DiscoverySessionCallback

public class DiscoverySessionCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public DiscoverySessionCallback ();
    protected DiscoverySessionCallback (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void OnMessageReceived (PeerHandle peerHandle, byte[] message);
    public virtual void OnMessageSendFailed (int messageId);
    public virtual void OnMessageSendSucceeded (int messageId);
    public virtual void OnPublishStarted (PublishDiscoverySession session);
    public virtual void OnServiceDiscovered (PeerHandle peerHandle, byte[] serviceSpecificInfo, System.Collections.Generic.IList<System.Byte[]> matchFilter);
    public virtual void OnSessionConfigFailed ();
    public virtual void OnSessionConfigUpdated ();
    public virtual void OnSessionTerminated ();
    public virtual void OnSubscribeStarted (SubscribeDiscoverySession session);
}

New Type Android.Net.Wifi.Aware.IdentityChangedListener

public class IdentityChangedListener : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public IdentityChangedListener ();
    protected IdentityChangedListener (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void OnIdentityChanged (byte[] mac);
}

New Type Android.Net.Wifi.Aware.PeerHandle

public class PeerHandle : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected PeerHandle (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Android.Net.Wifi.Aware.PublishConfig

public sealed class PublishConfig : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public PublishConfig ();
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public PublishConfig Build ();
        public PublishConfig.Builder SetMatchFilter (System.Collections.Generic.IList<System.Byte[]> matchFilter);
        public PublishConfig.Builder SetPublishType (PublishType publishType);
        public PublishConfig.Builder SetServiceName (string serviceName);
        public PublishConfig.Builder SetServiceSpecificInfo (byte[] serviceSpecificInfo);
        public PublishConfig.Builder SetTerminateNotificationEnabled (bool enable);
        public PublishConfig.Builder SetTtlSec (int ttlSec);
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Net.Wifi.Aware.PublishDiscoverySession

public class PublishDiscoverySession : Android.Net.Wifi.Aware.DiscoverySession, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable, System.IDisposable {
    // constructors
    protected PublishDiscoverySession (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void UpdatePublish (PublishConfig publishConfig);
}

New Type Android.Net.Wifi.Aware.PublishType

[Serializable]
public enum PublishType {
    Solicited = 1,
    Unsolicited = 0,
}

New Type Android.Net.Wifi.Aware.SubscribeConfig

public sealed class SubscribeConfig : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public SubscribeConfig ();
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public SubscribeConfig Build ();
        public SubscribeConfig.Builder SetMatchFilter (System.Collections.Generic.IList<System.Byte[]> matchFilter);
        public SubscribeConfig.Builder SetServiceName (string serviceName);
        public SubscribeConfig.Builder SetServiceSpecificInfo (byte[] serviceSpecificInfo);
        public SubscribeConfig.Builder SetSubscribeType (SubscribeType subscribeType);
        public SubscribeConfig.Builder SetTerminateNotificationEnabled (bool enable);
        public SubscribeConfig.Builder SetTtlSec (int ttlSec);
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Net.Wifi.Aware.SubscribeDiscoverySession

public class SubscribeDiscoverySession : Android.Net.Wifi.Aware.DiscoverySession, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable, System.IDisposable {
    // constructors
    protected SubscribeDiscoverySession (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void UpdateSubscribe (SubscribeConfig subscribeConfig);
}

New Type Android.Net.Wifi.Aware.SubscribeType

[Serializable]
public enum SubscribeType {
    Active = 1,
    Passive = 0,
}

New Type Android.Net.Wifi.Aware.WifiAwareDataPathRole

[Serializable]
public enum WifiAwareDataPathRole {
    Initiator = 0,
    Responder = 1,
}

New Type Android.Net.Wifi.Aware.WifiAwareManager

public class WifiAwareManager : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected WifiAwareManager (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // fields
    public static const string ActionWifiAwareStateChanged = "android.net.wifi.aware.action.WIFI_AWARE_STATE_CHANGED";
    // properties
    public virtual Characteristics Characteristics { get; }
    public virtual bool IsAvailable { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void Attach (AttachCallback attachCallback, Android.OS.Handler handler);
    public virtual void Attach (AttachCallback attachCallback, IdentityChangedListener identityChangedListener, Android.OS.Handler handler);
}

New Type Android.Net.Wifi.Aware.WifiAwareSession

public class WifiAwareSession : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable, System.IDisposable {
    // constructors
    protected WifiAwareSession (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void Close ();
    public virtual Android.Net.NetworkSpecifier CreateNetworkSpecifierOpen (WifiAwareDataPathRole role, byte[] peer);
    public virtual Android.Net.NetworkSpecifier CreateNetworkSpecifierPassphrase (WifiAwareDataPathRole role, byte[] peer, string passphrase);
    public virtual void Publish (PublishConfig publishConfig, DiscoverySessionCallback callback, Android.OS.Handler handler);
    public virtual void Subscribe (SubscribeConfig subscribeConfig, DiscoverySessionCallback callback, Android.OS.Handler handler);
}

New Namespace Android.Net.Wifi.Hotspot2

New Type Android.Net.Wifi.Hotspot2.ConfigParser

public sealed class ConfigParser : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static PasspointConfiguration ParsePasspointConfig (string mimeType, byte[] data);
}

New Type Android.Net.Wifi.Hotspot2.PasspointConfiguration

public sealed class PasspointConfiguration : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public PasspointConfiguration ();
    public PasspointConfiguration (PasspointConfiguration source);
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public Pps.Credential Credential { get; set; }
    public Pps.HomeSp HomeSp { get; set; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Namespace Android.Net.Wifi.Hotspot2.Omadm

New Type Android.Net.Wifi.Hotspot2.Omadm.PpsMoParser

public sealed class PpsMoParser : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static Android.Net.Wifi.Hotspot2.PasspointConfiguration ParseMoText (string xmlString);
}

New Namespace Android.Net.Wifi.Hotspot2.Pps

New Type Android.Net.Wifi.Hotspot2.Pps.Credential

public sealed class Credential : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public Credential ();
    public Credential (Credential source);
    // properties
    public Java.Security.Cert.X509Certificate CaCertificate { get; set; }
    public Credential.CertificateCredential CertCredential { get; set; }
    public Java.Security.IPrivateKey ClientPrivateKey { get; set; }
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public string Realm { get; set; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public Java.Security.Cert.X509Certificate[] GetClientCertificateChain ();
    public Credential.SimCredential GetSimCredential ();
    public Credential.UserCredential GetUserCredential ();
    public void SetClientCertificateChain (Java.Security.Cert.X509Certificate[] certificateChain);
    public void SetSimCredential (Credential.SimCredential simCredential);
    public void SetUserCredential (Credential.UserCredential userCredential);
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public sealed class CertificateCredential : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public Credential ();
        public Credential (Credential.CertificateCredential source);
        // properties
        public string CertType { get; set; }
        public static Android.OS.IParcelableCreator Creator { get; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual int DescribeContents ();
        public byte[] GetCertSha256Fingerprint ();
        public void SetCertSha256Fingerprint (byte[] certSha256Fingerprint);
        public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

        // inner types
        public static class InterfaceConsts {
            // fields
            public static const int ContentsFileDescriptor;

            [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
            public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
        }
    }
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
    public sealed class SimCredential : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public Credential ();
        public Credential (Credential.SimCredential source);
        // properties
        public static Android.OS.IParcelableCreator Creator { get; }
        public int EapType { get; set; }
        public string Imsi { get; set; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual int DescribeContents ();
        public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

        // inner types
        public static class InterfaceConsts {
            // fields
            public static const int ContentsFileDescriptor;

            [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
            public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
        }
    }
    public sealed class UserCredential : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public Credential ();
        public Credential (Credential.UserCredential source);
        // properties
        public static Android.OS.IParcelableCreator Creator { get; }
        public int EapType { get; set; }
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public string NonEapInnerMethod { get; set; }
        public string Password { get; set; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        public string Username { get; set; }
        // methods
        public virtual int DescribeContents ();
        public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

        // inner types
        public static class InterfaceConsts {
            // fields
            public static const int ContentsFileDescriptor;

            [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
            public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
        }
    }
}

New Type Android.Net.Wifi.Hotspot2.Pps.HomeSp

public sealed class HomeSp : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public HomeSp ();
    public HomeSp (HomeSp source);
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public string Fqdn { get; set; }
    public string FriendlyName { get; set; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public long[] GetRoamingConsortiumOis ();
    public void SetRoamingConsortiumOis (long[] roamingConsortiumOis);
    public virtual void WriteToParcel (Android.OS.Parcel dest, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Namespace Android.Views.Autofill

New Type Android.Views.Autofill.AutofillEventType

[Serializable]
public enum AutofillEventType {
    InputHidden = 2,
    InputShown = 1,
    InputUnavailable = 3,
}

New Type Android.Views.Autofill.AutofillId

public sealed class AutofillId : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual int DescribeContents ();
    public virtual void WriteToParcel (Android.OS.Parcel parcel, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Type Android.Views.Autofill.AutofillManager

public sealed class AutofillManager : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const string ExtraAssistStructure = "android.view.autofill.extra.ASSIST_STRUCTURE";
    public static const string ExtraAuthenticationResult = "android.view.autofill.extra.AUTHENTICATION_RESULT";
    public static const string ExtraClientState = "android.view.autofill.extra.CLIENT_STATE";
    // properties
    public bool HasEnabledAutofillServices { get; }
    public bool IsAutofillSupported { get; }
    public bool IsEnabled { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public void Cancel ();
    public void Commit ();
    public void DisableAutofillServices ();
    public void NotifyValueChanged (Android.Views.View view);
    public void NotifyValueChanged (Android.Views.View view, int virtualId, AutofillValue value);
    public void NotifyViewEntered (Android.Views.View view);
    public void NotifyViewEntered (Android.Views.View view, int virtualId, Android.Graphics.Rect absBounds);
    public void NotifyViewExited (Android.Views.View view);
    public void NotifyViewExited (Android.Views.View view, int virtualId);
    public void RegisterCallback (AutofillManager.AutofillCallback callback);
    public void RequestAutofill (Android.Views.View view);
    public void RequestAutofill (Android.Views.View view, int virtualId, Android.Graphics.Rect absBounds);
    public void UnregisterCallback (AutofillManager.AutofillCallback callback);

    // inner types
    public abstract class AutofillCallback : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public AutofillManager ();
        protected AutofillManager (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public virtual void OnAutofillEvent (Android.Views.View view, AutofillEventType e);
        public virtual void OnAutofillEvent (Android.Views.View view, int virtualId, AutofillEventType e);
    }
}

New Type Android.Views.Autofill.AutofillValue

public sealed class AutofillValue : Java.Lang.Object, Android.OS.IParcelable, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static Android.OS.IParcelableCreator Creator { get; }
    public long DateValue { get; }
    public bool IsDate { get; }
    public bool IsList { get; }
    public bool IsText { get; }
    public bool IsToggle { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public int ListValue { get; }
    public string TextValue { get; }
    public Java.Lang.ICharSequence TextValueFormatted { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public bool ToggleValue { get; }
    // methods
    public virtual int DescribeContents ();
    public static AutofillValue ForDate (long value);
    public static AutofillValue ForList (int value);
    public static AutofillValue ForText (Java.Lang.ICharSequence value);
    public static AutofillValue ForText (string value);
    public static AutofillValue ForToggle (bool value);
    public virtual void WriteToParcel (Android.OS.Parcel parcel, Android.OS.ParcelableWriteFlags flags);

    // inner types
    public static class InterfaceConsts {
        // fields
        public static const int ContentsFileDescriptor;

        [Obsolete ("This constant will be removed in the future version. Use Android.OS.ParcelableWriteFlags enum directly instead of this field.")]
        public static const Android.OS.ParcelableWriteFlags ParcelableWriteReturnValue;
    }
}

New Namespace Android.Views.TextClassifiers

New Type Android.Views.TextClassifiers.ITextClassifier

public interface ITextClassifier : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual TextClassification ClassifyText (Java.Lang.ICharSequence text, int startIndex, int endIndex, Android.OS.LocaleList defaultLocales);
    public virtual TextSelection SuggestSelection (Java.Lang.ICharSequence text, int selectionStartIndex, int selectionEndIndex, Android.OS.LocaleList defaultLocales);
}

New Type Android.Views.TextClassifiers.ITextClassifierExtensions

public static class ITextClassifierExtensions {
    // methods
    public static TextClassification ClassifyText (ITextClassifier self, string text, int startIndex, int endIndex, Android.OS.LocaleList defaultLocales);
    public static TextSelection SuggestSelection (ITextClassifier self, string text, int selectionStartIndex, int selectionEndIndex, Android.OS.LocaleList defaultLocales);
}

New Type Android.Views.TextClassifiers.TextClassification

public sealed class TextClassification : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public int EntityCount { get; }
    public Android.Graphics.Drawables.Drawable Icon { get; }
    public Android.Content.Intent Intent { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public string Label { get; }
    public Java.Lang.ICharSequence LabelFormatted { get; }
    public Android.Views.View.IOnClickListener OnClickListener { get; }
    public string Text { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public float GetConfidenceScore (string entity);
    public string GetEntity (int index);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public TextClassification ();
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public TextClassification Build ();
        public TextClassification.Builder SetEntityType (string type, float confidenceScore);
        public TextClassification.Builder SetIcon (Android.Graphics.Drawables.Drawable icon);
        public TextClassification.Builder SetIntent (Android.Content.Intent intent);
        public TextClassification.Builder SetLabel (string label);
        public TextClassification.Builder SetOnClickListener (Android.Views.View.IOnClickListener onClickListener);
        public TextClassification.Builder SetText (string text);
    }
}

New Type Android.Views.TextClassifiers.TextClassificationManager

public sealed class TextClassificationManager : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public ITextClassifier TextClassifier { get; set; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Android.Views.TextClassifiers.TextClassifier

public abstract class TextClassifier : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields
    public static const string TypeAddress = "address";
    public static const string TypeEmail = "email";
    public static const string TypeOther = "other";
    public static const string TypePhone = "phone";
    public static const string TypeUrl = "url";
    // properties
    public static ITextClassifier NoOp { get; }
}

New Type Android.Views.TextClassifiers.TextClassifierConsts

public abstract class TextClassifierConsts : Android.Views.TextClassifiers.TextClassifier, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
}

New Type Android.Views.TextClassifiers.TextSelection

public sealed class TextSelection : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public int EntityCount { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public int SelectionEndIndex { get; }
    public int SelectionStartIndex { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public float GetConfidenceScore (string entity);
    public string GetEntity (int index);

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // constructors
        public TextSelection (int startIndex, int endIndex);
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public TextSelection Build ();
        public TextSelection.Builder SetEntityType (string type, float confidenceScore);
    }
}

New Namespace Java.Lang.Invoke

New Type Java.Lang.Invoke.CallSite

public abstract class CallSite : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected CallSite (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual MethodHandle Target { get; set; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual MethodHandle DynamicInvoker ();
    public virtual MethodType Type ();
}

New Type Java.Lang.Invoke.ConstantCallSite

public class ConstantCallSite : Java.Lang.Invoke.CallSite, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public ConstantCallSite (MethodHandle target);
    protected ConstantCallSite (MethodType targetType, MethodHandle createTargetHook);
    protected ConstantCallSite (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public override MethodHandle Target { get; set; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public override MethodHandle DynamicInvoker ();
}

New Type Java.Lang.Invoke.IMethodHandleInfo

public interface IMethodHandleInfo : Android.Runtime.IJavaObject, System.IDisposable {
    // properties
    public virtual Java.Lang.Class DeclaringClass { get; }
    public virtual MethodType MethodType { get; }
    public virtual int Modifiers { get; }
    public virtual string Name { get; }
    public virtual ReferenceKind ReferenceKind { get; }
    // methods
    public virtual Java.Lang.Object ReflectAs (Java.Lang.Class expected, MethodHandles.Lookup lookup);
}

New Type Java.Lang.Invoke.LambdaConversionException

public class LambdaConversionException : Java.Lang.Exception, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public LambdaConversionException ();
    public LambdaConversionException (Java.Lang.Throwable cause);
    public LambdaConversionException (string message);
    protected LambdaConversionException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    public LambdaConversionException (string message, Java.Lang.Throwable cause);
    public LambdaConversionException (string message, Java.Lang.Throwable cause, bool enableSuppression, bool writableStackTrace);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Lang.Invoke.MethodHandle

public abstract class MethodHandle : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected MethodHandle (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual bool IsVarargsCollector { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual MethodHandle AsCollector (Java.Lang.Class arrayType, int arrayLength);
    public virtual MethodHandle AsFixedArity ();
    public virtual MethodHandle AsSpreader (Java.Lang.Class arrayType, int arrayLength);
    public virtual MethodHandle AsType (MethodType newType);
    public virtual MethodHandle AsVarargsCollector (Java.Lang.Class arrayType);
    public virtual MethodHandle BindTo (Java.Lang.Object x);
    public Java.Lang.Object Invoke (Java.Lang.Object[] args);
    public Java.Lang.Object InvokeExact (Java.Lang.Object[] args);
    public virtual Java.Lang.Object InvokeWithArguments (Java.Lang.Object[] arguments);
    public virtual Java.Lang.Object InvokeWithArguments (System.Collections.Generic.IList<object> arguments);
    public virtual MethodType Type ();
}

New Type Java.Lang.Invoke.MethodHandleInfo

public abstract class MethodHandleInfo : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // fields

    [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.ReferenceKind enum directly instead of this field.")]
    public static const ReferenceKind REFGetField;

    [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.ReferenceKind enum directly instead of this field.")]
    public static const ReferenceKind REFGetStatic;

    [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.ReferenceKind enum directly instead of this field.")]
    public static const ReferenceKind REFInvokeInterface;

    [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.ReferenceKind enum directly instead of this field.")]
    public static const ReferenceKind REFInvokeSpecial;

    [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.ReferenceKind enum directly instead of this field.")]
    public static const ReferenceKind REFInvokeStatic;

    [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.ReferenceKind enum directly instead of this field.")]
    public static const ReferenceKind REFInvokeVirtual;

    [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.ReferenceKind enum directly instead of this field.")]
    public static const ReferenceKind REFNewInvokeSpecial;

    [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.ReferenceKind enum directly instead of this field.")]
    public static const ReferenceKind REFPutField;

    [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.ReferenceKind enum directly instead of this field.")]
    public static const ReferenceKind REFPutStatic;
    // methods
    public static bool RefKindIsField (ReferenceKind refKind);
    public static bool RefKindIsValid (ReferenceKind refKind);
    public static string RefKindName (ReferenceKind refKind);
    public static string ReferenceKindToString (ReferenceKind referenceKind);
    public static string ToString (ReferenceKind kind, Java.Lang.Class defc, string name, MethodType type);
}

New Type Java.Lang.Invoke.MethodHandleInfoConsts

public abstract class MethodHandleInfoConsts : Java.Lang.Invoke.MethodHandleInfo, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
}

New Type Java.Lang.Invoke.MethodHandles

public class MethodHandles : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected MethodHandles (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static MethodHandle ArrayElementGetter (Java.Lang.Class arrayClass);
    public static MethodHandle ArrayElementSetter (Java.Lang.Class arrayClass);
    public static MethodHandle CatchException (MethodHandle target, Java.Lang.Class exType, MethodHandle handler);
    public static MethodHandle CollectArguments (MethodHandle target, int pos, MethodHandle filter);
    public static MethodHandle Constant (Java.Lang.Class type, Java.Lang.Object value);
    public static MethodHandle DropArguments (MethodHandle target, int pos, Java.Lang.Class[] valueTypes);
    public static MethodHandle DropArguments (MethodHandle target, int pos, System.Collections.Generic.IList<Java.Lang.Class> valueTypes);
    public static MethodHandle ExactInvoker (MethodType type);
    public static MethodHandle ExplicitCastArguments (MethodHandle target, MethodType newType);
    public static MethodHandle FilterArguments (MethodHandle target, int pos, MethodHandle[] filters);
    public static MethodHandle FilterReturnValue (MethodHandle target, MethodHandle filter);
    public static MethodHandle FoldArguments (MethodHandle target, MethodHandle combiner);
    public static MethodHandle GuardWithTest (MethodHandle test, MethodHandle target, MethodHandle fallback);
    public static MethodHandle Identity (Java.Lang.Class type);
    public static MethodHandle InsertArguments (MethodHandle target, int pos, Java.Lang.Object[] values);
    public static MethodHandles.Lookup InvokeLookup ();
    public static MethodHandle Invoker (MethodType type);
    public static MethodHandle PermuteArguments (MethodHandle target, MethodType newType, int[] reorder);
    public static MethodHandles.Lookup PublicLookup ();
    public static Java.Lang.Object ReflectAs (Java.Lang.Class expected, MethodHandle target);
    public static MethodHandle SpreadInvoker (MethodType type, int leadingArgCount);
    public static MethodHandle ThrowException (Java.Lang.Class returnType, Java.Lang.Class exType);

    // inner types
    public sealed class Lookup : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // fields

        [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.MethodLookupModes enum directly instead of this field.")]
        public static const MethodLookupModes Package;

        [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.MethodLookupModes enum directly instead of this field.")]
        public static const MethodLookupModes Private;

        [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.MethodLookupModes enum directly instead of this field.")]
        public static const MethodLookupModes Protected;

        [Obsolete ("This constant will be removed in the future version. Use Java.Lang.Invoke.MethodLookupModes enum directly instead of this field.")]
        public static const MethodLookupModes Public;
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public MethodHandle Bind (Java.Lang.Object receiver, string name, MethodType type);
        public MethodHandle FindConstructor (Java.Lang.Class refc, MethodType type);
        public MethodHandle FindGetter (Java.Lang.Class refc, string name, Java.Lang.Class type);
        public MethodHandle FindSetter (Java.Lang.Class refc, string name, Java.Lang.Class type);
        public MethodHandle FindSpecial (Java.Lang.Class refc, string name, MethodType type, Java.Lang.Class specialCaller);
        public MethodHandle FindStatic (Java.Lang.Class refc, string name, MethodType type);
        public MethodHandle FindStaticGetter (Java.Lang.Class refc, string name, Java.Lang.Class type);
        public MethodHandle FindStaticSetter (Java.Lang.Class refc, string name, Java.Lang.Class type);
        public MethodHandle FindVirtual (Java.Lang.Class refc, string name, MethodType type);
        public MethodHandles.Lookup In (Java.Lang.Class requestedLookupClass);
        public Java.Lang.Class LookupClass ();
        public MethodLookupModes LookupModes ();
        public IMethodHandleInfo RevealDirect (MethodHandle target);
        public MethodHandle Unreflect (Java.Lang.Reflect.Method m);
        public MethodHandle UnreflectConstructor (Java.Lang.Reflect.Constructor c);
        public MethodHandle UnreflectGetter (Java.Lang.Reflect.Field f);
        public MethodHandle UnreflectSetter (Java.Lang.Reflect.Field f);
        public MethodHandle UnreflectSpecial (Java.Lang.Reflect.Method m, Java.Lang.Class specialCaller);
    }
}

New Type Java.Lang.Invoke.MethodLookupModes

[Serializable]
public enum MethodLookupModes {
    Package = 8,
    Private = 2,
    Protected = 4,
    Public = 1,
}

New Type Java.Lang.Invoke.MethodType

public sealed class MethodType : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public bool HasPrimitives { get; }
    public bool HasWrappers { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public MethodType AppendParameterTypes (Java.Lang.Class[] ptypesToInsert);
    public MethodType AppendParameterTypes (System.Collections.Generic.IList<Java.Lang.Class> ptypesToInsert);
    public MethodType ChangeParameterType (int num, Java.Lang.Class nptype);
    public MethodType ChangeReturnType (Java.Lang.Class nrtype);
    public MethodType DropParameterTypes (int start, int end);
    public MethodType Erase ();
    public static MethodType FromMethodDescriptorString (string descriptor, Java.Lang.ClassLoader loader);
    public MethodType Generic ();
    public static MethodType GenericMethodType (int objectArgCount);
    public static MethodType GenericMethodType (int objectArgCount, bool finalArray);
    public MethodType InsertParameterTypes (int num, Java.Lang.Class[] ptypesToInsert);
    public MethodType InsertParameterTypes (int num, System.Collections.Generic.IList<Java.Lang.Class> ptypesToInsert);
    public static MethodType InvokeMethodType (Java.Lang.Class rtype);
    public static MethodType InvokeMethodType (Java.Lang.Class rtype, Java.Lang.Class ptype0);
    public static MethodType InvokeMethodType (Java.Lang.Class rtype, Java.Lang.Class[] ptypes);
    public static MethodType InvokeMethodType (Java.Lang.Class rtype, MethodType ptypes);
    public static MethodType InvokeMethodType (Java.Lang.Class rtype, System.Collections.Generic.IList<Java.Lang.Class> ptypes);
    public static MethodType InvokeMethodType (Java.Lang.Class rtype, Java.Lang.Class ptype0, Java.Lang.Class[] ptypes);
    public Java.Lang.Class[] ParameterArray ();
    public int ParameterCount ();
    public System.Collections.Generic.IList<Java.Lang.Class> ParameterList ();
    public Java.Lang.Class ParameterType (int num);
    public Java.Lang.Class ReturnType ();
    public string ToMethodDescriptorString ();
    public MethodType Unwrap ();
    public MethodType Wrap ();
}

New Type Java.Lang.Invoke.MutableCallSite

public class MutableCallSite : Java.Lang.Invoke.CallSite, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public MutableCallSite (MethodHandle target);
    public MutableCallSite (MethodType type);
    protected MutableCallSite (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public override MethodHandle Target { get; set; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public override MethodHandle DynamicInvoker ();
}

New Type Java.Lang.Invoke.ReferenceKind

[Serializable]
public enum ReferenceKind {
    Getfield = 1,
    Getstatic = 2,
    Invokeinterface = 9,
    Invokespecial = 7,
    Invokestatic = 6,
    Invokevirtual = 5,
    Newinvokespecial = 8,
    Putfield = 3,
    Putstatic = 4,
}

New Type Java.Lang.Invoke.VolatileCallSite

public class VolatileCallSite : Java.Lang.Invoke.CallSite, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public VolatileCallSite (MethodHandle target);
    public VolatileCallSite (MethodType type);
    protected VolatileCallSite (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public override MethodHandle Target { get; set; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public override MethodHandle DynamicInvoker ();
}

New Type Java.Lang.Invoke.WrongMethodTypeException

public class WrongMethodTypeException : Java.Lang.RuntimeException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public WrongMethodTypeException ();
    public WrongMethodTypeException (string s);
    protected WrongMethodTypeException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Namespace Java.Nio.FileNio

New Type Java.Nio.FileNio.AccessDeniedException

public class AccessDeniedException : Java.Nio.FileNio.FileSystemException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public AccessDeniedException (string file);
    protected AccessDeniedException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    public AccessDeniedException (string file, string other, string reason);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.AccessMode

public sealed class AccessMode : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static AccessMode Execute { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static AccessMode Read { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public static AccessMode Write { get; }
    // methods
    public static AccessMode ValueOf (string name);
    public static AccessMode[] Values ();
}

New Type Java.Nio.FileNio.AtomicMoveNotSupportedException

public class AtomicMoveNotSupportedException : Java.Nio.FileNio.FileSystemException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    protected AtomicMoveNotSupportedException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    public AtomicMoveNotSupportedException (string source, string target, string reason);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.ClosedDirectoryStreamException

public class ClosedDirectoryStreamException : Java.Lang.IllegalStateException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public ClosedDirectoryStreamException ();
    protected ClosedDirectoryStreamException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.ClosedFileSystemException

public class ClosedFileSystemException : Java.Lang.IllegalStateException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public ClosedFileSystemException ();
    protected ClosedFileSystemException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.ClosedWatchServiceException

public class ClosedWatchServiceException : Java.Lang.IllegalStateException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public ClosedWatchServiceException ();
    protected ClosedWatchServiceException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.DirectoryIteratorException

public sealed class DirectoryIteratorException : Java.Util.ConcurrentModificationException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public DirectoryIteratorException (Java.IO.IOException cause);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.DirectoryNotEmptyException

public class DirectoryNotEmptyException : Java.Nio.FileNio.FileSystemException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public DirectoryNotEmptyException (string dir);
    protected DirectoryNotEmptyException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.FileAlreadyExistsException

public class FileAlreadyExistsException : Java.Nio.FileNio.FileSystemException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public FileAlreadyExistsException (string file);
    protected FileAlreadyExistsException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    public FileAlreadyExistsException (string file, string other, string reason);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.FileStore

public abstract class FileStore : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected FileStore ();
    protected FileStore (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual bool IsReadOnly { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public virtual long TotalSpace { get; }
    public virtual long UnallocatedSpace { get; }
    public virtual long UsableSpace { get; }
    // methods
    public virtual Java.Lang.Object GetAttribute (string attribute);
    public virtual Java.Lang.Object GetFileStoreAttributeView (Java.Lang.Class type);
    public virtual string Name ();
    public virtual bool SupportsFileAttributeView (Java.Lang.Class type);
    public virtual bool SupportsFileAttributeView (string name);
    public virtual string Type ();
}

New Type Java.Nio.FileNio.FileSystem

public abstract class FileSystem : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ICloseable, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected FileSystem ();
    protected FileSystem (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public virtual Java.Lang.IIterable FileStores { get; }
    public virtual bool IsOpen { get; }
    public virtual bool IsReadOnly { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual Java.Lang.IIterable RootDirectories { get; }
    public virtual string Separator { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public virtual Attributes.UserPrincipalLookupService UserPrincipalLookupService { get; }
    // methods
    public virtual void Close ();
    public virtual IPath GetPath (string first, string[] more);
    public virtual IPathMatcher GetPathMatcher (string syntaxAndPattern);
    public virtual IWatchService NewWatchService ();
    public virtual Spi.FileSystemProvider Provider ();
    public virtual System.Collections.Generic.ICollection<string> SupportedFileAttributeViews ();
}

New Type Java.Nio.FileNio.FileSystemAlreadyExistsException

public class FileSystemAlreadyExistsException : Java.Lang.RuntimeException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public FileSystemAlreadyExistsException ();
    public FileSystemAlreadyExistsException (string msg);
    protected FileSystemAlreadyExistsException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.FileSystemException

public class FileSystemException : Java.IO.IOException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public FileSystemException (string file);
    protected FileSystemException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    public FileSystemException (string file, string other, string reason);
    // properties
    public virtual string File { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual string OtherFile { get; }
    public virtual string Reason { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.FileSystemLoopException

public class FileSystemLoopException : Java.Nio.FileNio.FileSystemException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public FileSystemLoopException (string file);
    protected FileSystemLoopException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.FileSystemNotFoundException

public class FileSystemNotFoundException : Java.Lang.RuntimeException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public FileSystemNotFoundException ();
    public FileSystemNotFoundException (string msg);
    protected FileSystemNotFoundException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.FileSystems

public sealed class FileSystems : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static FileSystem Default { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static FileSystem GetFileSystem (Java.Net.URI uri);
    public static FileSystem NewFileSystem (Java.Net.URI uri, System.Collections.Generic.IDictionary<System.String,System.Object> env);
    public static FileSystem NewFileSystem (IPath path, Java.Lang.ClassLoader loader);
    public static FileSystem NewFileSystem (Java.Net.URI uri, System.Collections.Generic.IDictionary<System.String,System.Object> env, Java.Lang.ClassLoader loader);
}

New Type Java.Nio.FileNio.FileVisitOption

public sealed class FileVisitOption : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static FileVisitOption FollowLinks { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static FileVisitOption ValueOf (string name);
    public static FileVisitOption[] Values ();
}

New Type Java.Nio.FileNio.FileVisitResult

public sealed class FileVisitResult : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static FileVisitResult Continue { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static FileVisitResult SkipSiblings { get; }
    public static FileVisitResult SkipSubtree { get; }
    public static FileVisitResult Terminate { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static FileVisitResult ValueOf (string name);
    public static FileVisitResult[] Values ();
}

New Type Java.Nio.FileNio.Files

public sealed class Files : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static long Copy (IPath source, System.IO.Stream out);
    public static IPath Copy (IPath source, IPath target, ICopyOption[] options);
    public static long Copy (System.IO.Stream in, IPath target, ICopyOption[] options);
    public static IPath CreateDirectories (IPath dir, Attributes.IFileAttribute[] attrs);
    public static IPath CreateDirectory (IPath dir, Attributes.IFileAttribute[] attrs);
    public static IPath CreateFile (IPath path, Attributes.IFileAttribute[] attrs);
    public static IPath CreateLink (IPath link, IPath existing);
    public static IPath CreateSymbolicLink (IPath link, IPath target, Attributes.IFileAttribute[] attrs);
    public static IPath CreateTempDirectory (string prefix, Attributes.IFileAttribute[] attrs);
    public static IPath CreateTempDirectory (IPath dir, string prefix, Attributes.IFileAttribute[] attrs);
    public static IPath CreateTempFile (string prefix, string suffix, Attributes.IFileAttribute[] attrs);
    public static IPath CreateTempFile (IPath dir, string prefix, string suffix, Attributes.IFileAttribute[] attrs);
    public static void Delete (IPath path);
    public static bool DeleteIfExists (IPath path);
    public static bool Exists (IPath path, LinkOption[] options);
    public static Java.Lang.Object GetAttribute (IPath path, string attribute, LinkOption[] options);
    public static Java.Lang.Object GetFileAttributeView (IPath path, Java.Lang.Class type, LinkOption[] options);
    public static FileStore GetFileStore (IPath path);
    public static Attributes.FileTime GetLastModifiedTime (IPath path, LinkOption[] options);
    public static Attributes.IUserPrincipal GetOwner (IPath path, LinkOption[] options);
    public static System.Collections.Generic.ICollection<Attributes.PosixFilePermission> GetPosixFilePermissions (IPath path, LinkOption[] options);
    public static bool IsDirectory (IPath path, LinkOption[] options);
    public static bool IsExecutable (IPath path);
    public static bool IsHidden (IPath path);
    public static bool IsReadable (IPath path);
    public static bool IsRegularFile (IPath path, LinkOption[] options);
    public static bool IsSameFile (IPath path, IPath path2);
    public static bool IsSymbolicLink (IPath path);
    public static bool IsWritable (IPath path);
    public static IPath Move (IPath source, IPath target, ICopyOption[] options);
    public static Java.IO.BufferedReader NewBufferedReader (IPath path);
    public static Java.IO.BufferedReader NewBufferedReader (IPath path, Java.Nio.Charset.Charset cs);
    public static Java.IO.BufferedWriter NewBufferedWriter (IPath path, IOpenOption[] options);
    public static Java.IO.BufferedWriter NewBufferedWriter (IPath path, Java.Nio.Charset.Charset cs, IOpenOption[] options);
    public static Java.Nio.Channels.ISeekableByteChannel NewByteChannel (IPath path, IOpenOption[] options);
    public static Java.Nio.Channels.ISeekableByteChannel NewByteChannel (IPath path, System.Collections.Generic.ICollection<IOpenOption> options, Attributes.IFileAttribute[] attrs);
    public static IDirectoryStream NewDirectoryStream (IPath dir);
    public static IDirectoryStream NewDirectoryStream (IPath dir, IDirectoryStreamFilter filter);
    public static IDirectoryStream NewDirectoryStream (IPath dir, string glob);
    public static System.IO.Stream NewInputStream (IPath path, IOpenOption[] options);
    public static System.IO.Stream NewOutputStream (IPath path, IOpenOption[] options);
    public static bool NotExists (IPath path, LinkOption[] options);
    public static string ProbeContentType (IPath path);
    public static byte[] ReadAllBytes (IPath path);
    public static System.Collections.Generic.IList<string> ReadAllLines (IPath path);
    public static System.Collections.Generic.IList<string> ReadAllLines (IPath path, Java.Nio.Charset.Charset cs);
    public static Java.Lang.Object ReadAttributes (IPath path, Java.Lang.Class type, LinkOption[] options);
    public static System.Collections.Generic.IDictionary<System.String,Java.Lang.Object> ReadAttributes (IPath path, string attributes, LinkOption[] options);
    public static IPath ReadSymbolicLink (IPath link);
    public static IPath SetAttribute (IPath path, string attribute, Java.Lang.Object value, LinkOption[] options);
    public static IPath SetLastModifiedTime (IPath path, Attributes.FileTime time);
    public static IPath SetOwner (IPath path, Attributes.IUserPrincipal owner);
    public static IPath SetPosixFilePermissions (IPath path, System.Collections.Generic.ICollection<Attributes.PosixFilePermission> perms);
    public static long Size (IPath path);
    public static IPath WalkFileTree (IPath start, IFileVisitor visitor);
    public static IPath WalkFileTree (IPath start, System.Collections.Generic.ICollection<FileVisitOption> options, int maxDepth, IFileVisitor visitor);
    public static IPath Write (IPath path, Java.Lang.IIterable lines, IOpenOption[] options);
    public static IPath Write (IPath path, byte[] bytes, IOpenOption[] options);
    public static IPath Write (IPath path, Java.Lang.IIterable lines, Java.Nio.Charset.Charset cs, IOpenOption[] options);
}

New Type Java.Nio.FileNio.ICopyOption

public interface ICopyOption : Android.Runtime.IJavaObject, System.IDisposable {
}

New Type Java.Nio.FileNio.IDirectoryStream

public interface IDirectoryStream : Android.Runtime.IJavaObject, Java.IO.ICloseable, Java.Lang.IIterable, System.IDisposable {
    // methods
    public virtual Java.Util.IIterator Iterator ();
}

New Type Java.Nio.FileNio.IDirectoryStreamFilter

public interface IDirectoryStreamFilter : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual bool Accept (Java.Lang.Object entry);
}

New Type Java.Nio.FileNio.IFileVisitor

public interface IFileVisitor : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual FileVisitResult PostVisitDirectory (Java.Lang.Object dir, Java.IO.IOException exc);
    public virtual FileVisitResult PreVisitDirectory (Java.Lang.Object dir, Attributes.IBasicFileAttributes attrs);
    public virtual FileVisitResult VisitFile (Java.Lang.Object file, Attributes.IBasicFileAttributes attrs);
    public virtual FileVisitResult VisitFileFailed (Java.Lang.Object file, Java.IO.IOException exc);
}

New Type Java.Nio.FileNio.IOpenOption

public interface IOpenOption : Android.Runtime.IJavaObject, System.IDisposable {
}

New Type Java.Nio.FileNio.IPath

public interface IPath : Android.Runtime.IJavaObject, Java.Lang.IComparable, Java.Lang.IIterable, IWatchable, System.IDisposable {
    // properties
    public virtual IPath FileName { get; }
    public virtual FileSystem FileSystem { get; }
    public virtual bool IsAbsolute { get; }
    public virtual int NameCount { get; }
    public virtual IPath Parent { get; }
    public virtual IPath Root { get; }
    // methods
    public virtual int CompareTo (IPath other);
    public virtual bool EndsWith (IPath other);
    public virtual bool EndsWith (string other);
    public virtual bool Equals (Java.Lang.Object other);
    public virtual int GetHashCode ();
    public virtual IPath GetName (int index);
    public virtual Java.Util.IIterator Iterator ();
    public virtual IPath Normalize ();
    public virtual IWatchKey Register (IWatchService watcher, IWatchEventKind[] events);
    public virtual IWatchKey Register (IWatchService watcher, IWatchEventKind[] events, IWatchEventModifier[] modifiers);
    public virtual IPath Relativize (IPath other);
    public virtual IPath Resolve (IPath other);
    public virtual IPath Resolve (string other);
    public virtual IPath ResolveSibling (IPath other);
    public virtual IPath ResolveSibling (string other);
    public virtual bool StartsWith (IPath other);
    public virtual bool StartsWith (string other);
    public virtual IPath Subpath (int beginIndex, int endIndex);
    public virtual IPath ToAbsolutePath ();
    public virtual Java.IO.File ToFile ();
    public virtual IPath ToRealPath (LinkOption[] options);
    public virtual string ToString ();
    public virtual Java.Net.URI ToUri ();
}

New Type Java.Nio.FileNio.IPathMatcher

public interface IPathMatcher : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual bool Matches (IPath path);
}

New Type Java.Nio.FileNio.ISecureDirectoryStream

public interface ISecureDirectoryStream : Android.Runtime.IJavaObject, Java.IO.ICloseable, Java.Lang.IIterable, IDirectoryStream, System.IDisposable {
    // methods
    public virtual void DeleteDirectory (Java.Lang.Object path);
    public virtual void DeleteFile (Java.Lang.Object path);
    public virtual Java.Lang.Object GetFileAttributeView (Java.Lang.Class type);
    public virtual Java.Lang.Object GetFileAttributeView (Java.Lang.Object path, Java.Lang.Class type, LinkOption[] options);
    public virtual void Move (Java.Lang.Object srcpath, ISecureDirectoryStream targetdir, Java.Lang.Object targetpath);
    public virtual Java.Nio.Channels.ISeekableByteChannel NewByteChannel (Java.Lang.Object path, System.Collections.Generic.ICollection<IOpenOption> options, Attributes.IFileAttribute[] attrs);
    public virtual ISecureDirectoryStream NewDirectoryStream (Java.Lang.Object path, LinkOption[] options);
}

New Type Java.Nio.FileNio.IWatchEvent

public interface IWatchEvent : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual Java.Lang.Object Context ();
    public virtual int Count ();
    public virtual IWatchEventKind Kind ();
}

New Type Java.Nio.FileNio.IWatchEventKind

public interface IWatchEventKind : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual string Name ();
    public virtual Java.Lang.Class Type ();
}

New Type Java.Nio.FileNio.IWatchEventModifier

public interface IWatchEventModifier : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual string Name ();
}

New Type Java.Nio.FileNio.IWatchKey

public interface IWatchKey : Android.Runtime.IJavaObject, System.IDisposable {
    // properties
    public virtual bool IsValid { get; }
    // methods
    public virtual void Cancel ();
    public virtual System.Collections.Generic.IList<IWatchEvent> PollEvents ();
    public virtual bool Reset ();
    public virtual IWatchable Watchable ();
}

New Type Java.Nio.FileNio.IWatchService

public interface IWatchService : Android.Runtime.IJavaObject, Java.IO.ICloseable, System.IDisposable {
    // methods
    public virtual void Close ();
    public virtual IWatchKey Poll ();
    public virtual IWatchKey Poll (long timeout, Java.Util.Concurrent.TimeUnit unit);
    public virtual IWatchKey Take ();
}

New Type Java.Nio.FileNio.IWatchable

public interface IWatchable : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual IWatchKey Register (IWatchService watcher, IWatchEventKind[] events);
    public virtual IWatchKey Register (IWatchService watcher, IWatchEventKind[] events, IWatchEventModifier[] modifiers);
}

New Type Java.Nio.FileNio.InvalidPathException

public class InvalidPathException : Java.Lang.IllegalArgumentException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    protected InvalidPathException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    public InvalidPathException (string input, string reason);
    public InvalidPathException (string input, string reason, int index);
    // properties
    public virtual int Index { get; }
    public virtual string Input { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual string Reason { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.LinkOption

public sealed class LinkOption : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, ICopyOption, IOpenOption, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static LinkOption NofollowLinks { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static LinkOption ValueOf (string name);
    public static LinkOption[] Values ();
}

New Type Java.Nio.FileNio.LinkPermission

public sealed class LinkPermission : Java.Security.BasicPermission, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Security.IGuard, System.IDisposable {
    // constructors
    public LinkPermission (string name);
    public LinkPermission (string name, string actions);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.NoSuchFileException

public class NoSuchFileException : Java.Nio.FileNio.FileSystemException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public NoSuchFileException (string file);
    protected NoSuchFileException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    public NoSuchFileException (string file, string other, string reason);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.NotDirectoryException

public class NotDirectoryException : Java.Nio.FileNio.FileSystemException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public NotDirectoryException (string file);
    protected NotDirectoryException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.NotLinkException

public class NotLinkException : Java.Nio.FileNio.FileSystemException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public NotLinkException (string file);
    protected NotLinkException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    public NotLinkException (string file, string other, string reason);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.Paths

public sealed class Paths : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static IPath Get (Java.Net.URI uri);
    public static IPath Get (string first, string[] more);
}

New Type Java.Nio.FileNio.ProviderMismatchException

public class ProviderMismatchException : Java.Lang.IllegalArgumentException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public ProviderMismatchException ();
    public ProviderMismatchException (string msg);
    protected ProviderMismatchException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.ProviderNotFoundException

public class ProviderNotFoundException : Java.Lang.RuntimeException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public ProviderNotFoundException ();
    public ProviderNotFoundException (string msg);
    protected ProviderNotFoundException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.ReadOnlyFileSystemException

public class ReadOnlyFileSystemException : Java.Lang.UnsupportedOperationException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public ReadOnlyFileSystemException ();
    protected ReadOnlyFileSystemException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Nio.FileNio.SimpleFileVisitor

public class SimpleFileVisitor : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, IFileVisitor, System.IDisposable {
    // constructors
    protected SimpleFileVisitor ();
    protected SimpleFileVisitor (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual FileVisitResult PostVisitDirectory (Java.Lang.Object dir, Java.IO.IOException exc);
    public virtual FileVisitResult PreVisitDirectory (Java.Lang.Object dir, Attributes.IBasicFileAttributes attrs);
    public virtual FileVisitResult VisitFile (Java.Lang.Object file, Attributes.IBasicFileAttributes attrs);
    public virtual FileVisitResult VisitFileFailed (Java.Lang.Object file, Java.IO.IOException exc);
}

New Type Java.Nio.FileNio.StandardCopyOption

public sealed class StandardCopyOption : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, ICopyOption, System.IDisposable {
    // properties
    public static StandardCopyOption AtomicMove { get; }
    public static StandardCopyOption CopyAttributes { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static StandardCopyOption ReplaceExisting { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static StandardCopyOption ValueOf (string name);
    public static StandardCopyOption[] Values ();
}

New Type Java.Nio.FileNio.StandardOpenOption

public sealed class StandardOpenOption : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, IOpenOption, System.IDisposable {
    // properties
    public static StandardOpenOption Append { get; }
    public static StandardOpenOption Create { get; }
    public static StandardOpenOption CreateNew { get; }
    public static StandardOpenOption DeleteOnClose { get; }
    public static StandardOpenOption Dsync { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static StandardOpenOption Read { get; }
    public static StandardOpenOption Sparse { get; }
    public static StandardOpenOption Sync { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public static StandardOpenOption TruncateExisting { get; }
    public static StandardOpenOption Write { get; }
    // methods
    public static StandardOpenOption ValueOf (string name);
    public static StandardOpenOption[] Values ();
}

New Type Java.Nio.FileNio.StandardWatchEventKinds

public sealed class StandardWatchEventKinds : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static IWatchEventKind EntryCreate { get; }
    public static IWatchEventKind EntryDelete { get; }
    public static IWatchEventKind EntryModify { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static IWatchEventKind Overflow { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Namespace Java.Nio.FileNio.Attributes

New Type Java.Nio.FileNio.Attributes.AclEntry

public sealed class AclEntry : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public System.Collections.Generic.ICollection<AclEntryFlag> Flags ();
    public static AclEntry.Builder NewBuilder ();
    public static AclEntry.Builder NewBuilder (AclEntry entry);
    public System.Collections.Generic.ICollection<AclEntryPermission> Permissions ();
    public IUserPrincipal Principal ();
    public AclEntryType Type ();

    // inner types
    public sealed class Builder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        // methods
        public AclEntry Build ();
        public AclEntry.Builder SetFlags (AclEntryFlag[] flags);
        public AclEntry.Builder SetFlags (System.Collections.Generic.ICollection<AclEntryFlag> flags);
        public AclEntry.Builder SetPermissions (AclEntryPermission[] perms);
        public AclEntry.Builder SetPermissions (System.Collections.Generic.ICollection<AclEntryPermission> perms);
        public AclEntry.Builder SetPrincipal (IUserPrincipal who);
        public AclEntry.Builder SetType (AclEntryType type);
    }
}

New Type Java.Nio.FileNio.Attributes.AclEntryFlag

public sealed class AclEntryFlag : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static AclEntryFlag DirectoryInherit { get; }
    public static AclEntryFlag FileInherit { get; }
    public static AclEntryFlag InheritOnly { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static AclEntryFlag NoPropagateInherit { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static AclEntryFlag ValueOf (string name);
    public static AclEntryFlag[] Values ();
}

New Type Java.Nio.FileNio.Attributes.AclEntryPermission

public sealed class AclEntryPermission : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static AclEntryPermission AddFile { get; }
    public static AclEntryPermission AddSubdirectory { get; }
    public static AclEntryPermission AppendData { get; }
    public static AclEntryPermission Delete { get; }
    public static AclEntryPermission DeleteChild { get; }
    public static AclEntryPermission Execute { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static AclEntryPermission ListDirectory { get; }
    public static AclEntryPermission ReadAcl { get; }
    public static AclEntryPermission ReadAttributes { get; }
    public static AclEntryPermission ReadData { get; }
    public static AclEntryPermission ReadNamedAttrs { get; }
    public static AclEntryPermission Synchronize { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public static AclEntryPermission WriteAcl { get; }
    public static AclEntryPermission WriteAttributes { get; }
    public static AclEntryPermission WriteData { get; }
    public static AclEntryPermission WriteNamedAttrs { get; }
    public static AclEntryPermission WriteOwner { get; }
    // methods
    public static AclEntryPermission ValueOf (string name);
    public static AclEntryPermission[] Values ();
}

New Type Java.Nio.FileNio.Attributes.AclEntryType

public sealed class AclEntryType : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static AclEntryType Alarm { get; }
    public static AclEntryType Allow { get; }
    public static AclEntryType Audit { get; }
    public static AclEntryType Deny { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static AclEntryType ValueOf (string name);
    public static AclEntryType[] Values ();
}

New Type Java.Nio.FileNio.Attributes.FileTime

public sealed class FileTime : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public int CompareTo (FileTime other);
    public static FileTime From (long value, Java.Util.Concurrent.TimeUnit unit);
    public static FileTime FromMillis (long value);
    public long To (Java.Util.Concurrent.TimeUnit unit);
    public long ToMillis ();
}

New Type Java.Nio.FileNio.Attributes.IAclFileAttributeView

public interface IAclFileAttributeView : Android.Runtime.IJavaObject, IAttributeView, IFileAttributeView, IFileOwnerAttributeView, System.IDisposable {
    // properties
    public virtual System.Collections.Generic.IList<AclEntry> Acl { get; set; }
    // methods
    public virtual string Name ();
}

New Type Java.Nio.FileNio.Attributes.IAttributeView

public interface IAttributeView : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual string Name ();
}

New Type Java.Nio.FileNio.Attributes.IBasicFileAttributeView

public interface IBasicFileAttributeView : Android.Runtime.IJavaObject, IAttributeView, IFileAttributeView, System.IDisposable {
    // methods
    public virtual string Name ();
    public virtual IBasicFileAttributes ReadAttributes ();
    public virtual void SetTimes (FileTime lastModifiedTime, FileTime lastAccessTime, FileTime createTime);
}

New Type Java.Nio.FileNio.Attributes.IBasicFileAttributes

public interface IBasicFileAttributes : Android.Runtime.IJavaObject, System.IDisposable {
    // properties
    public virtual bool IsDirectory { get; }
    public virtual bool IsOther { get; }
    public virtual bool IsRegularFile { get; }
    public virtual bool IsSymbolicLink { get; }
    // methods
    public virtual FileTime CreationTime ();
    public virtual Java.Lang.Object FileKey ();
    public virtual FileTime LastAccessTime ();
    public virtual FileTime LastModifiedTime ();
    public virtual long Size ();
}

New Type Java.Nio.FileNio.Attributes.IDosFileAttributeView

public interface IDosFileAttributeView : Android.Runtime.IJavaObject, IAttributeView, IBasicFileAttributeView, IFileAttributeView, System.IDisposable {
    // methods
    public virtual string Name ();
    public virtual IBasicFileAttributes ReadAttributes ();
    public virtual void SetArchive (bool value);
    public virtual void SetHidden (bool value);
    public virtual void SetReadOnly (bool value);
    public virtual void SetSystem (bool value);
}

New Type Java.Nio.FileNio.Attributes.IDosFileAttributes

public interface IDosFileAttributes : Android.Runtime.IJavaObject, IBasicFileAttributes, System.IDisposable {
    // properties
    public virtual bool IsArchive { get; }
    public virtual bool IsHidden { get; }
    public virtual bool IsReadOnly { get; }
    public virtual bool IsSystem { get; }
}

New Type Java.Nio.FileNio.Attributes.IFileAttribute

public interface IFileAttribute : Android.Runtime.IJavaObject, System.IDisposable {
    // methods
    public virtual string Name ();
    public virtual Java.Lang.Object Value ();
}

New Type Java.Nio.FileNio.Attributes.IFileAttributeView

public interface IFileAttributeView : Android.Runtime.IJavaObject, IAttributeView, System.IDisposable {
}

New Type Java.Nio.FileNio.Attributes.IFileOwnerAttributeView

public interface IFileOwnerAttributeView : Android.Runtime.IJavaObject, IAttributeView, IFileAttributeView, System.IDisposable {
    // properties
    public virtual IUserPrincipal Owner { get; set; }
    // methods
    public virtual string Name ();
}

New Type Java.Nio.FileNio.Attributes.IFileStoreAttributeView

public interface IFileStoreAttributeView : Android.Runtime.IJavaObject, IAttributeView, System.IDisposable {
}

New Type Java.Nio.FileNio.Attributes.IGroupPrincipal

public interface IGroupPrincipal : Android.Runtime.IJavaObject, IUserPrincipal, Java.Security.IPrincipal, System.IDisposable {
}

New Type Java.Nio.FileNio.Attributes.IPosixFileAttributeView

public interface IPosixFileAttributeView : Android.Runtime.IJavaObject, IAttributeView, IBasicFileAttributeView, IFileAttributeView, IFileOwnerAttributeView, System.IDisposable {
    // methods
    public virtual string Name ();
    public virtual IBasicFileAttributes ReadAttributes ();
    public virtual void SetGroup (IGroupPrincipal group);
    public virtual void SetPermissions (System.Collections.Generic.ICollection<PosixFilePermission> perms);
}

New Type Java.Nio.FileNio.Attributes.IPosixFileAttributes

public interface IPosixFileAttributes : Android.Runtime.IJavaObject, IBasicFileAttributes, System.IDisposable {
    // methods
    public virtual IGroupPrincipal Group ();
    public virtual IUserPrincipal Owner ();
    public virtual System.Collections.Generic.ICollection<PosixFilePermission> Permissions ();
}

New Type Java.Nio.FileNio.Attributes.IUserDefinedFileAttributeView

public interface IUserDefinedFileAttributeView : Android.Runtime.IJavaObject, IAttributeView, IFileAttributeView, System.IDisposable {
    // methods
    public virtual void Delete (string name);
    public virtual System.Collections.Generic.IList<string> List ();
    public virtual string Name ();
    public virtual int Read (string name, Java.Nio.ByteBuffer dst);
    public virtual int Size (string name);
    public virtual int Write (string name, Java.Nio.ByteBuffer src);
}

New Type Java.Nio.FileNio.Attributes.IUserPrincipal

public interface IUserPrincipal : Android.Runtime.IJavaObject, Java.Security.IPrincipal, System.IDisposable {
}

New Type Java.Nio.FileNio.Attributes.PosixFilePermission

public sealed class PosixFilePermission : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static PosixFilePermission GroupExecute { get; }
    public static PosixFilePermission GroupRead { get; }
    public static PosixFilePermission GroupWrite { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static PosixFilePermission OthersExecute { get; }
    public static PosixFilePermission OthersRead { get; }
    public static PosixFilePermission OthersWrite { get; }
    public static PosixFilePermission OwnerExecute { get; }
    public static PosixFilePermission OwnerRead { get; }
    public static PosixFilePermission OwnerWrite { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static PosixFilePermission ValueOf (string name);
    public static PosixFilePermission[] Values ();
}

New Type Java.Nio.FileNio.Attributes.PosixFilePermissions

public sealed class PosixFilePermissions : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static IFileAttribute AsFileAttribute (System.Collections.Generic.ICollection<PosixFilePermission> perms);
    public static System.Collections.Generic.ICollection<PosixFilePermission> FromString (string perms);
    public static string ToString (System.Collections.Generic.ICollection<PosixFilePermission> perms);
}

New Type Java.Nio.FileNio.Attributes.UserPrincipalLookupService

public abstract class UserPrincipalLookupService : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected UserPrincipalLookupService ();
    protected UserPrincipalLookupService (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual IGroupPrincipal LookupPrincipalByGroupName (string group);
    public virtual IUserPrincipal LookupPrincipalByName (string name);
}

New Type Java.Nio.FileNio.Attributes.UserPrincipalNotFoundException

public class UserPrincipalNotFoundException : Java.IO.IOException, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable, System.Runtime.Serialization.ISerializable {
    // constructors
    public UserPrincipalNotFoundException (string name);
    protected UserPrincipalNotFoundException (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual string Name { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Namespace Java.Nio.FileNio.Spi

New Type Java.Nio.FileNio.Spi.FileSystemProvider

public abstract class FileSystemProvider : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected FileSystemProvider ();
    protected FileSystemProvider (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public virtual string Scheme { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual void CheckAccess (Java.Nio.FileNio.IPath path, Java.Nio.FileNio.AccessMode[] modes);
    public virtual void Copy (Java.Nio.FileNio.IPath source, Java.Nio.FileNio.IPath target, Java.Nio.FileNio.ICopyOption[] options);
    public virtual void CreateDirectory (Java.Nio.FileNio.IPath dir, Java.Nio.FileNio.Attributes.IFileAttribute[] attrs);
    public virtual void CreateLink (Java.Nio.FileNio.IPath link, Java.Nio.FileNio.IPath existing);
    public virtual void CreateSymbolicLink (Java.Nio.FileNio.IPath link, Java.Nio.FileNio.IPath target, Java.Nio.FileNio.Attributes.IFileAttribute[] attrs);
    public virtual void Delete (Java.Nio.FileNio.IPath path);
    public virtual bool DeleteIfExists (Java.Nio.FileNio.IPath path);
    public virtual Java.Lang.Object GetFileAttributeView (Java.Nio.FileNio.IPath path, Java.Lang.Class type, Java.Nio.FileNio.LinkOption[] options);
    public virtual Java.Nio.FileNio.FileStore GetFileStore (Java.Nio.FileNio.IPath path);
    public virtual Java.Nio.FileNio.FileSystem GetFileSystem (Java.Net.URI uri);
    public virtual Java.Nio.FileNio.IPath GetPath (Java.Net.URI uri);
    public static System.Collections.Generic.IList<FileSystemProvider> InstalledProviders ();
    public virtual bool IsHidden (Java.Nio.FileNio.IPath path);
    public virtual bool IsSameFile (Java.Nio.FileNio.IPath path, Java.Nio.FileNio.IPath path2);
    public virtual void Move (Java.Nio.FileNio.IPath source, Java.Nio.FileNio.IPath target, Java.Nio.FileNio.ICopyOption[] options);
    public virtual Java.Nio.Channels.AsynchronousFileChannel NewAsynchronousFileChannel (Java.Nio.FileNio.IPath path, System.Collections.Generic.ICollection<Java.Nio.FileNio.IOpenOption> options, Java.Util.Concurrent.IExecutorService executor, Java.Nio.FileNio.Attributes.IFileAttribute[] attrs);
    public virtual Java.Nio.Channels.ISeekableByteChannel NewByteChannel (Java.Nio.FileNio.IPath path, System.Collections.Generic.ICollection<Java.Nio.FileNio.IOpenOption> options, Java.Nio.FileNio.Attributes.IFileAttribute[] attrs);
    public virtual Java.Nio.FileNio.IDirectoryStream NewDirectoryStream (Java.Nio.FileNio.IPath dir, Java.Nio.FileNio.IDirectoryStreamFilter filter);
    public virtual Java.Nio.Channels.FileChannel NewFileChannel (Java.Nio.FileNio.IPath path, System.Collections.Generic.ICollection<Java.Nio.FileNio.IOpenOption> options, Java.Nio.FileNio.Attributes.IFileAttribute[] attrs);
    public virtual Java.Nio.FileNio.FileSystem NewFileSystem (Java.Net.URI uri, System.Collections.Generic.IDictionary<System.String,System.Object> env);
    public virtual Java.Nio.FileNio.FileSystem NewFileSystem (Java.Nio.FileNio.IPath path, System.Collections.Generic.IDictionary<System.String,System.Object> env);
    public virtual System.IO.Stream NewInputStream (Java.Nio.FileNio.IPath path, Java.Nio.FileNio.IOpenOption[] options);
    public virtual System.IO.Stream NewOutputStream (Java.Nio.FileNio.IPath path, Java.Nio.FileNio.IOpenOption[] options);
    public virtual Java.Lang.Object ReadAttributes (Java.Nio.FileNio.IPath path, Java.Lang.Class type, Java.Nio.FileNio.LinkOption[] options);
    public virtual System.Collections.Generic.IDictionary<System.String,Java.Lang.Object> ReadAttributes (Java.Nio.FileNio.IPath path, string attributes, Java.Nio.FileNio.LinkOption[] options);
    public virtual Java.Nio.FileNio.IPath ReadSymbolicLink (Java.Nio.FileNio.IPath link);
    public virtual void SetAttribute (Java.Nio.FileNio.IPath path, string attribute, Java.Lang.Object value, Java.Nio.FileNio.LinkOption[] options);
}

New Type Java.Nio.FileNio.Spi.FileTypeDetector

public abstract class FileTypeDetector : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    protected FileTypeDetector ();
    protected FileTypeDetector (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer);
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public virtual string ProbeContentType (Java.Nio.FileNio.IPath path);
}

New Namespace Java.Time.Format

New Type Java.Time.Format.DateTimeFormatter

public sealed class DateTimeFormatter : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static DateTimeFormatter BasicIsoDate { get; }
    public DecimalStyle DecimalStyle { get; }
    public static DateTimeFormatter IsoDate { get; }
    public static DateTimeFormatter IsoDateTime { get; }
    public static DateTimeFormatter IsoInstant { get; }
    public static DateTimeFormatter IsoLocalDate { get; }
    public static DateTimeFormatter IsoLocalDateTime { get; }
    public static DateTimeFormatter IsoLocalTime { get; }
    public static DateTimeFormatter IsoOffsetDate { get; }
    public static DateTimeFormatter IsoOffsetDateTime { get; }
    public static DateTimeFormatter IsoOffsetTime { get; }
    public static DateTimeFormatter IsoOrdinalDate { get; }
    public static DateTimeFormatter IsoTime { get; }
    public static DateTimeFormatter IsoWeekDate { get; }
    public static DateTimeFormatter IsoZonedDateTime { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public Java.Util.Locale Locale { get; }
    public ResolverStyle ResolverStyle { get; }
    public static DateTimeFormatter Rfc1123DateTime { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static DateTimeFormatter OfLocalizedDate (FormatStyle dateStyle);
    public static DateTimeFormatter OfLocalizedDateTime (FormatStyle dateTimeStyle);
    public static DateTimeFormatter OfLocalizedDateTime (FormatStyle dateStyle, FormatStyle timeStyle);
    public static DateTimeFormatter OfLocalizedTime (FormatStyle timeStyle);
    public static DateTimeFormatter OfPattern (string pattern);
    public static DateTimeFormatter OfPattern (string pattern, Java.Util.Locale locale);
    public Java.Text._Format ToFormat ();
    public DateTimeFormatter WithDecimalStyle (DecimalStyle decimalStyle);
    public DateTimeFormatter WithLocale (Java.Util.Locale locale);
    public DateTimeFormatter WithResolverStyle (ResolverStyle resolverStyle);
}

New Type Java.Time.Format.DateTimeFormatterBuilder

public sealed class DateTimeFormatterBuilder : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // constructors
    public DateTimeFormatterBuilder ();
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public DateTimeFormatterBuilder Append (DateTimeFormatter formatter);
    public DateTimeFormatterBuilder AppendChronologyId ();
    public DateTimeFormatterBuilder AppendChronologyText (TextStyle textStyle);
    public DateTimeFormatterBuilder AppendInstant ();
    public DateTimeFormatterBuilder AppendInstant (int fractionalDigits);
    public DateTimeFormatterBuilder AppendLiteral (char literal);
    public DateTimeFormatterBuilder AppendLiteral (string literal);
    public DateTimeFormatterBuilder AppendLocalized (FormatStyle dateStyle, FormatStyle timeStyle);
    public DateTimeFormatterBuilder AppendLocalizedOffset (TextStyle style);
    public DateTimeFormatterBuilder AppendOffset (string pattern, string noOffsetText);
    public DateTimeFormatterBuilder AppendOffsetId ();
    public DateTimeFormatterBuilder AppendOptional (DateTimeFormatter formatter);
    public DateTimeFormatterBuilder AppendPattern (string pattern);
    public DateTimeFormatterBuilder AppendZoneId ();
    public DateTimeFormatterBuilder AppendZoneOrOffsetId ();
    public DateTimeFormatterBuilder AppendZoneRegionId ();
    public DateTimeFormatterBuilder AppendZoneText (TextStyle textStyle);
    public DateTimeFormatterBuilder OptionalEnd ();
    public DateTimeFormatterBuilder OptionalStart ();
    public DateTimeFormatterBuilder PadNext (int padWidth);
    public DateTimeFormatterBuilder PadNext (int padWidth, char padChar);
    public DateTimeFormatterBuilder ParseCaseInsensitive ();
    public DateTimeFormatterBuilder ParseCaseSensitive ();
    public DateTimeFormatterBuilder ParseLenient ();
    public DateTimeFormatterBuilder ParseStrict ();
    public DateTimeFormatter ToFormatter ();
    public DateTimeFormatter ToFormatter (Java.Util.Locale locale);
}

New Type Java.Time.Format.DecimalStyle

public sealed class DecimalStyle : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static System.Collections.Generic.ICollection<Java.Util.Locale> AvailableLocales { get; }
    public char DecimalSeparator { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public char NegativeSign { get; }
    public char PositiveSign { get; }
    public static DecimalStyle Standard { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public char ZeroDigit { get; }
    // methods
    public static DecimalStyle Of (Java.Util.Locale locale);
    public static DecimalStyle OfDefaultLocale ();
    public DecimalStyle WithDecimalSeparator (char decimalSeparator);
    public DecimalStyle WithNegativeSign (char negativeSign);
    public DecimalStyle WithPositiveSign (char positiveSign);
    public DecimalStyle WithZeroDigit (char zeroDigit);
}

New Type Java.Time.Format.FormatStyle

public sealed class FormatStyle : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static FormatStyle Full { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static FormatStyle Long { get; }
    public static FormatStyle Medium { get; }
    public static FormatStyle Short { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static FormatStyle ValueOf (string name);
    public static FormatStyle[] Values ();
}

New Type Java.Time.Format.ResolverStyle

public sealed class ResolverStyle : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static ResolverStyle Lenient { get; }
    public static ResolverStyle Smart { get; }
    public static ResolverStyle Strict { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static ResolverStyle ValueOf (string name);
    public static ResolverStyle[] Values ();
}

New Type Java.Time.Format.SignStyle

public sealed class SignStyle : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static SignStyle Always { get; }
    public static SignStyle ExceedsPad { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static SignStyle Never { get; }
    public static SignStyle Normal { get; }
    public static SignStyle NotNegative { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static SignStyle ValueOf (string name);
    public static SignStyle[] Values ();
}

New Type Java.Time.Format.TextStyle

public sealed class TextStyle : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static TextStyle Full { get; }
    public static TextStyle FullStandalone { get; }
    public bool IsStandalone { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static TextStyle Narrow { get; }
    public static TextStyle NarrowStandalone { get; }
    public static TextStyle Short { get; }
    public static TextStyle ShortStandalone { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public TextStyle AsNormal ();
    public TextStyle AsStandalone ();
    public static TextStyle ValueOf (string name);
    public static TextStyle[] Values ();
}

New Namespace Java.Time.Temporal

New Type Java.Time.Temporal.ChronoField

public sealed class ChronoField : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static ChronoField AlignedDayOfWeekInMonth { get; }
    public static ChronoField AlignedDayOfWeekInYear { get; }
    public static ChronoField AlignedWeekOfMonth { get; }
    public static ChronoField AlignedWeekOfYear { get; }
    public static ChronoField AmpmOfDay { get; }
    public static ChronoField ClockHourOfAmpm { get; }
    public static ChronoField ClockHourOfDay { get; }
    public static ChronoField DayOfMonth { get; }
    public static ChronoField DayOfWeek { get; }
    public static ChronoField DayOfYear { get; }
    public static ChronoField EpochDay { get; }
    public static ChronoField Era { get; }
    public static ChronoField HourOfAmpm { get; }
    public static ChronoField HourOfDay { get; }
    public static ChronoField InstantSeconds { get; }
    public bool IsDateBased { get; }
    public bool IsTimeBased { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static ChronoField MicroOfDay { get; }
    public static ChronoField MicroOfSecond { get; }
    public static ChronoField MilliOfDay { get; }
    public static ChronoField MilliOfSecond { get; }
    public static ChronoField MinuteOfDay { get; }
    public static ChronoField MinuteOfHour { get; }
    public static ChronoField MonthOfYear { get; }
    public static ChronoField NanoOfDay { get; }
    public static ChronoField NanoOfSecond { get; }
    public static ChronoField OffsetSeconds { get; }
    public static ChronoField ProlepticMonth { get; }
    public static ChronoField SecondOfDay { get; }
    public static ChronoField SecondOfMinute { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public static ChronoField Year { get; }
    public static ChronoField YearOfEra { get; }
    // methods
    public Java.Lang.Object AdjustInto (Java.Lang.Object temporal, long newValue);
    public int CheckValidIntValue (long value);
    public long CheckValidValue (long value);
    public string GetDisplayName (Java.Util.Locale locale);
    public ValueRange Range ();
    public static ChronoField ValueOf (string name);
    public static ChronoField[] Values ();
}

New Type Java.Time.Temporal.ChronoUnit

public sealed class ChronoUnit : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public static ChronoUnit Centuries { get; }
    public static ChronoUnit Days { get; }
    public static ChronoUnit Decades { get; }
    public static ChronoUnit Eras { get; }
    public static ChronoUnit Forever { get; }
    public static ChronoUnit HalfDays { get; }
    public static ChronoUnit Hours { get; }
    public bool IsDateBased { get; }
    public bool IsDurationEstimated { get; }
    public bool IsTimeBased { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public static ChronoUnit Micros { get; }
    public static ChronoUnit Millennia { get; }
    public static ChronoUnit Millis { get; }
    public static ChronoUnit Minutes { get; }
    public static ChronoUnit Months { get; }
    public static ChronoUnit Nanos { get; }
    public static ChronoUnit Seconds { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public static ChronoUnit Weeks { get; }
    public static ChronoUnit Years { get; }
    // methods
    public Java.Lang.Object AddTo (Java.Lang.Object temporal, long amount);
    public static ChronoUnit ValueOf (string name);
    public static ChronoUnit[] Values ();
}

New Type Java.Time.Temporal.IsoFields

public sealed class IsoFields : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Time.Temporal.JulianFields

public sealed class JulianFields : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Time.Temporal.TemporalAdjusters

public sealed class TemporalAdjusters : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Time.Temporal.TemporalQueries

public sealed class TemporalQueries : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
}

New Type Java.Time.Temporal.ValueRange

public sealed class ValueRange : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public bool IsFixed { get; }
    public bool IsIntValue { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public long LargestMinimum { get; }
    public long Maximum { get; }
    public long Minimum { get; }
    public long SmallestMaximum { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public bool IsValidIntValue (long value);
    public bool IsValidValue (long value);
    public static ValueRange Of (long min, long max);
    public static ValueRange Of (long min, long maxSmallest, long maxLargest);
    public static ValueRange Of (long minSmallest, long minLargest, long maxSmallest, long maxLargest);
}

New Type Java.Time.Temporal.WeekFields

public sealed class WeekFields : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public static WeekFields Iso { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    public int MinimalDaysInFirstWeek { get; }
    public static WeekFields SundayStart { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public static WeekFields Of (Java.Util.Locale locale);
}

New Namespace Java.Time.Zone

New Type Java.Time.Zone.ZoneOffsetTransition

public sealed class ZoneOffsetTransition : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
    // properties
    public bool IsGap { get; }
    public bool IsOverlap { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public int CompareTo (ZoneOffsetTransition transition);
    public long ToEpochSecond ();
}

New Type Java.Time.Zone.ZoneOffsetTransitionRule

public sealed class ZoneOffsetTransitionRule : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public int DayOfMonthIndicator { get; }
    public bool IsMidnightEndOfDay { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    // methods
    public ZoneOffsetTransition CreateTransition (int year);
    public ZoneOffsetTransitionRule.TimeDefinition GetTimeDefinition ();

    // inner types
    public sealed class TimeDefinition : Java.Lang.Enum, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, Java.Lang.IComparable, System.IDisposable {
        // properties
        public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
        public static ZoneOffsetTransitionRule.TimeDefinition Standard { get; }
        protected override IntPtr ThresholdClass { get; }
        protected override System.Type ThresholdType { get; }
        public static ZoneOffsetTransitionRule.TimeDefinition Utc { get; }
        public static ZoneOffsetTransitionRule.TimeDefinition Wall { get; }
        // methods
        public static ZoneOffsetTransitionRule.TimeDefinition ValueOf (string name);
        public static ZoneOffsetTransitionRule.TimeDefinition[] Values ();
    }
}

New Type Java.Time.Zone.ZoneRules

public sealed class ZoneRules : Java.Lang.Object, Android.Runtime.IJavaObject, Java.IO.ISerializable, Java.Interop.IJavaPeerable, System.IDisposable {
    // properties
    public bool IsFixedOffset { get; }
    public override Java.Interop.JniPeerMembers JniPeerMembers { get; }
    protected override IntPtr ThresholdClass { get; }
    protected override System.Type ThresholdType { get; }
    public System.Collections.Generic.IList<ZoneOffsetTransitionRule> TransitionRules { get; }
    public System.Collections.Generic.IList<ZoneOffsetTransition> Transitions { get; }
}

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.