API Difference Mono.Android.dll $(TargetFrameworkVersion)=v12.1 vs $(TargetFrameworkVersion)=v13.0

API listing follows standard diff formatting. Lines preceded by a '+' are additions and a '-' indicates removal.

Android

 namespace Android {
     public sealed class Manifest : Object {
         public sealed class Permission : Object {
+            public const string BindTvInteractiveApp = "android.permission.BIND_TV_INTERACTIVE_APP";
+            public const string BodySensorsBackground = "android.permission.BODY_SENSORS_BACKGROUND";
+            public const string DeliverCompanionMessages = "android.permission.DELIVER_COMPANION_MESSAGES";
+            public const string ManageWifiInterfaces = "android.permission.MANAGE_WIFI_INTERFACES";
+            public const string ManageWifiNetworkSelection = "android.permission.MANAGE_WIFI_NETWORK_SELECTION";
+            public const string NearbyWifiDevices = "android.permission.NEARBY_WIFI_DEVICES";
+            public const string OverrideWifiConfig = "android.permission.OVERRIDE_WIFI_CONFIG";
+            public const string PostNotifications = "android.permission.POST_NOTIFICATIONS";
+            public const string ReadAssistantAppSearchData = "android.permission.READ_ASSISTANT_APP_SEARCH_DATA";
+            public const string ReadBasicPhoneState = "android.permission.READ_BASIC_PHONE_STATE";
+            public const string ReadHomeAppSearchData = "android.permission.READ_HOME_APP_SEARCH_DATA";
+            public const string ReadMediaAudio = "android.permission.READ_MEDIA_AUDIO";
+            public const string ReadMediaImages = "android.permission.READ_MEDIA_IMAGES";
+            public const string ReadMediaVideo = "android.permission.READ_MEDIA_VIDEO";
+            public const string ReadNearbyStreamingPolicy = "android.permission.READ_NEARBY_STREAMING_POLICY";
+            public const string RequestCompanionProfileAppStreaming = "android.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING";
+            public const string RequestCompanionProfileAutomotiveProjection = "android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION";
+            public const string RequestCompanionProfileComputer = "android.permission.REQUEST_COMPANION_PROFILE_COMPUTER";
+            public const string RequestCompanionSelfManaged = "android.permission.REQUEST_COMPANION_SELF_MANAGED";
+            public const string StartViewAppFeatures = "android.permission.START_VIEW_APP_FEATURES";
+            public const string SubscribeToKeyguardLockedState = "android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE";
+            public const string UseExactAlarm = "android.permission.USE_EXACT_ALARM";
         }
         public sealed class Permission_group : Object {
+            public const string Notifications = "android.permission-group.NOTIFICATIONS";
+            public const string ReadMediaAural = "android.permission-group.READ_MEDIA_AURAL";
+            public const string ReadMediaVisual = "android.permission-group.READ_MEDIA_VISUAL";
         }
     }
     public sealed class Resource : Object {
         public sealed class Attribute : Object {
+            public const int AllowGameAngleDriver = 16844376;
+            public const int AllowGameDownscaling = 16844377;
+            public const int AllowGameFpsOverride = 16844378;
+            public const int AllowUntrustedActivityEmbedding = 16844393;
+            public const int AutoHandwritingEnabled = 16844382;
+            public const int BackdropColor = 16844402;
+            public const int CanDisplayOnRemoteDevices = 16844368;
+            public const int EnableOnBackInvokedCallback = 16844396;
+            public const int FromExtendBottom = 16844386;
+            public const int FromExtendLeft = 16844383;
+            public const int FromExtendRight = 16844385;
+            public const int FromExtendTop = 16844384;
+            public const int Intro = 16844395;
+            public const int KnownActivityEmbeddingCerts = 16844394;
+            public const int LineBreakStyle = 16844398;
+            public const int LineBreakWordStyle = 16844399;
+            public const int LocaleConfig = 16844379;
+            public const int PreferKeepClear = 16844381;
+            public const int RequiredSplitTypes = 16844366;
+            public const int ResetEnabledSettingsOnAppDataCleared = 16844370;
+            public const int SharedUserMaxSdkVersion = 16844365;
+            public const int ShowBackdrop = 16844380;
+            public const int ShowClockAndComplications = 16844372;
+            public const int SplitTypes = 16844367;
+            public const int SupportedTypes = 16844369;
+            public const int SupportsBatteryGameMode = 16844374;
+            public const int SupportsInlineSuggestionsWithTouchExploration = 16844397;
+            public const int SupportsPerformanceGameMode = 16844375;
+            public const int SupportsStylusHandwriting = 16844371;
+            public const int TileService = 16844391;
+            public const int ToExtendBottom = 16844390;
+            public const int ToExtendLeft = 16844387;
+            public const int ToExtendRight = 16844389;
+            public const int ToExtendTop = 16844388;
+            public const int WindowSplashScreenBehavior = 16844392;
         }
         public sealed class Id : Object {
+            public const int AccessibilityActionShowTextSuggestions = 16908376;
+            public const int InputExtractAccessories = 16908378;
+            public const int InputExtractAction = 16908377;
         }
         public sealed class Style : Object {
+            public const int TextAppearanceDeviceDefaultHeadline = 16974565;
         }
     }
 }

Android.AccessibilityServices

 namespace Android.AccessibilityServices {
     public sealed class AccessibilityGestureEvent : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public AccessibilityGestureEvent(int gestureId, int displayId, IList<MotionEvent> motionEvents);
     }
     public abstract class AccessibilityService : Service {
+        public const GlobalAction GlobalActionDpadCenter = GlobalAction.DpadCenter;
+        public const GlobalAction GlobalActionDpadDown = GlobalAction.DpadDown;
+        public const GlobalAction GlobalActionDpadLeft = GlobalAction.DpadLeft;
+        public const GlobalAction GlobalActionDpadRight = GlobalAction.DpadRight;
+        public const GlobalAction GlobalActionDpadUp = GlobalAction.DpadUp;
+        public InputMethod? InputMethod { get; }
+        public virtual bool IsCacheEnabled { get; }
+        public virtual bool ClearCache();
+        public virtual bool ClearCachedSubtree(AccessibilityNodeInfo node);
+        public virtual AccessibilityNodeInfo? GetRootInActiveWindow(int prefetchingStrategy);
+        public TouchInteractionController GetTouchInteractionController(int displayId);
+        public virtual bool IsNodeInCache(AccessibilityNodeInfo node);
+        public virtual InputMethod OnCreateInputMethod();
+        public virtual void SetAnimationScale(float scale);
+        public virtual bool SetCacheEnabled(bool enabled);
         public sealed class MagnificationController : Object {
+            public Region CurrentMagnificationRegion { get; }
+            public MagnificationConfig? MagnificationConfig { get; }
+            public bool ResetCurrentMagnification(bool animate);
+            public bool SetMagnificationConfig(MagnificationConfig config, bool animate);
         }
         public sealed class SoftKeyboardController : Object {
+            public const SoftKeyboardControllerEnableIme EnableImeFailByAdmin = SoftKeyboardControllerEnableIme.FailByAdmin;
+            public const SoftKeyboardControllerEnableIme EnableImeFailUnknown = SoftKeyboardControllerEnableIme.FailUnknown;
+            public const SoftKeyboardControllerEnableIme EnableImeSuccess = SoftKeyboardControllerEnableIme.Success;
+            public int SetInputMethodEnabled(string imeId, bool enabled);
         }
     }
     public enum AccessibilityServiceFlags {
+        FlagInputMethodEditor = 32768,
     }
     public class AccessibilityServiceInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const AccessibilityServiceFlags FlagInputMethodEditor = AccessibilityServiceFlags.FlagInputMethodEditor;
+        public virtual string TileServiceName { get; }
+        public string? LoadIntro(PackageManager packageManager);
+        public virtual ICharSequence? LoadIntroFormatted(PackageManager packageManager);
     }
     public enum GlobalAction {
+        DpadCenter = 20,
+        DpadDown = 17,
+        DpadLeft = 18,
+        DpadRight = 19,
+        DpadUp = 16,
     }
+    public class InputMethod : Object {
+        public InputMethod(AccessibilityService service);
+        protected InputMethod(IntPtr javaReference, JniHandleOwnership transfer);
+        public InputMethod.AccessibilityInputConnection? CurrentInputConnection { get; }
+        public EditorInfo? CurrentInputEditorInfo { get; }
+        public bool CurrentInputStarted { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void OnFinishInput();
+        public virtual void OnStartInput(EditorInfo attribute, bool restarting);
+        public virtual void OnUpdateSelection(int oldSelStart, int oldSelEnd, int newSelStart, int newSelEnd, int candidatesStart, int candidatesEnd);
+        public sealed class AccessibilityInputConnection : Object {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public void ClearMetaKeyStates(int states);
+            public void CommitText(ICharSequence text, int newCursorPosition, TextAttribute? textAttribute);
+            public void CommitText(string text, int newCursorPosition, TextAttribute? textAttribute);
+            public void DeleteSurroundingText(int beforeLength, int afterLength);
+            public int GetCursorCapsMode(int reqModes);
+            public SurroundingText? GetSurroundingText(int beforeLength, int afterLength, int flags);
+            public void PerformContextMenuAction(int id);
+            public void PerformEditorAction(int editorAction);
+            public void SendKeyEvent(KeyEvent e);
+            public void SetSelection(int start, int end);
+        }
+    }
+    public sealed class MagnificationConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const MagnificationMode MagnificationModeDefault = MagnificationMode.Default;
+        public const MagnificationMode MagnificationModeFullscreen = MagnificationMode.Fullscreen;
+        public const MagnificationMode MagnificationModeWindow = MagnificationMode.Window;
+        public float CenterX { get; }
+        public float CenterY { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int Mode { get; }
+        public float Scale { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel parcel, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public MagnificationConfig Build();
+            public MagnificationConfig.Builder SetCenterX(float centerX);
+            public MagnificationConfig.Builder SetCenterY(float centerY);
+            public MagnificationConfig.Builder SetMode(int mode);
+            public MagnificationConfig.Builder SetScale(float scale);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum MagnificationMode {
+        Default = 0,
+        Fullscreen = 1,
+        Window = 2,
+    }
+    public enum SoftKeyboardControllerEnableIme {
+        FailByAdmin = 1,
+        FailUnknown = 2,
+        Success = 0,
+    }
+    public sealed class TouchInteractionController : Object {
+        public const TouchInteractionState StateClear = TouchInteractionState.Clear;
+        public const TouchInteractionState StateDelegating = TouchInteractionState.Delegating;
+        public const TouchInteractionState StateDragging = TouchInteractionState.Dragging;
+        public const TouchInteractionState StateTouchExploring = TouchInteractionState.TouchExploring;
+        public const TouchInteractionState StateTouchInteracting = TouchInteractionState.TouchInteracting;
+        public int DisplayId { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int MaxPointerCount { get; }
+        public int State { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void PerformClick();
+        public void PerformLongClickAndStartDrag();
+        public void RegisterCallback(IExecutor? executor, TouchInteractionController.ICallback callback);
+        public void RequestDelegating();
+        public void RequestDragging(int pointerId);
+        public void RequestTouchExploration();
+        public static string StateToString(int state);
+        public void UnregisterAllCallbacks();
+        public bool UnregisterCallback(TouchInteractionController.ICallback callback);
+        public interface ICallback : IDisposable, IJavaObject, IJavaPeerable {
+            void OnMotionEvent(MotionEvent e);
+            void OnStateChanged(int state);
+        }
+    }
+    public enum TouchInteractionState {
+        Clear = 0,
+        Delegating = 4,
+        Dragging = 3,
+        TouchExploring = 2,
+        TouchInteracting = 1,
+    }
 }

Android.AdServices

+namespace Android.AdServices {
+    public class AdServicesVersion : Object {
+        protected AdServicesVersion(IntPtr javaReference, JniHandleOwnership transfer);
+        public static int ApiVersion { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+}

Android.Animation

 namespace Android.Animation {
     public abstract class Animator : Object, ICloneable, IDisposable, IJavaObject, IJavaPeerable {
         public interface IAnimatorPauseListener : IDisposable, IJavaObject, IJavaPeerable {
-            void OnAnimationPause(Animator? animation);
+            void OnAnimationPause(Animator animation);
-            void OnAnimationResume(Animator? animation);
+            void OnAnimationResume(Animator animation);
         }
     }
     public class ValueAnimator : Animator {
-        public virtual Object AnimatedValue { get; }
+        public virtual Object? AnimatedValue { get; }
+        public static float DurationScale { get; }
-        public virtual void AddUpdateListener(ValueAnimator.IAnimatorUpdateListener listener);
+        public virtual void AddUpdateListener(ValueAnimator.IAnimatorUpdateListener? listener);
-        public virtual Object GetAnimatedValue(string propertyName);
+        public virtual Object? GetAnimatedValue(string? propertyName);
-        public static ValueAnimator OfArgb(params int[] values);
+        public static ValueAnimator? OfArgb(params int[]? values);
-        public static ValueAnimator OfFloat(params float[] values);
+        public static ValueAnimator? OfFloat(params float[]? values);
-        public static ValueAnimator OfInt(params int[] values);
+        public static ValueAnimator? OfInt(params int[]? values);
-        public static ValueAnimator OfObject(ITypeEvaluator evaluator, params Object[]? values);
+        public static ValueAnimator? OfObject(ITypeEvaluator? evaluator, params Object[]? values);
-        public static ValueAnimator OfPropertyValuesHolder(params PropertyValuesHolder[]? values);
+        public static ValueAnimator? OfPropertyValuesHolder(params PropertyValuesHolder[]? values);
+        public static bool RegisterDurationScaleChangeListener(ValueAnimator.IDurationScaleChangeListener listener);
-        public virtual void RemoveUpdateListener(ValueAnimator.IAnimatorUpdateListener listener);
+        public virtual void RemoveUpdateListener(ValueAnimator.IAnimatorUpdateListener? listener);
-        public virtual void SetEvaluator(ITypeEvaluator value);
+        public virtual void SetEvaluator(ITypeEvaluator? value);
-        public virtual void SetFloatValues(params float[] values);
+        public virtual void SetFloatValues(params float[]? values);
-        public override void SetInterpolator(ITimeInterpolator value);
+        public override void SetInterpolator(ITimeInterpolator? value);
-        public virtual void SetIntValues(params int[] values);
+        public virtual void SetIntValues(params int[]? values);
+        public static bool UnregisterDurationScaleChangeListener(ValueAnimator.IDurationScaleChangeListener listener);
+        public class DurationScaleChangeEventArgs : EventArgs {
+            public DurationScaleChangeEventArgs(float scale);
+            public float Scale { get; }
+        }
         public interface IAnimatorUpdateListener : IDisposable, IJavaObject, IJavaPeerable {
-            void OnAnimationUpdate(ValueAnimator? animation);
+            void OnAnimationUpdate(ValueAnimator animation);
         }
+        public interface IDurationScaleChangeListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnChanged(float scale);
+        }
     }
 }

Android.App

 namespace Android.App {
     public class Activity : ContextThemeWrapper, IComponentCallbacks, IComponentCallbacks2, IDisposable, IJavaObject, IJavaPeerable, KeyEvent.ICallback, LayoutInflater.IFactory, LayoutInflater.IFactory2, View.IOnCreateContextMenuListener, Window.ICallback {
+        public virtual IOnBackInvokedDispatcher OnBackInvokedDispatcher { get; }
+        public virtual void OverridePendingTransition(int enterAnim, int exitAnim, int backgroundColor);
+        public virtual void SetRecentsScreenshotEnabled(bool enabled);
+        public virtual void SetShouldDockBigOverlays(bool shouldDockBigOverlays);
+        public virtual bool ShouldDockBigOverlays();
     }
     public class ActivityManager : Object {
         public class TaskDescription : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public virtual int BackgroundColor { get; }
+            public virtual int NavigationBarColor { get; }
+            public virtual int StatusBarColor { get; }
+            public sealed class Builder : Object {
+                public Builder();
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public ActivityManager.TaskDescription Build();
+                public ActivityManager.TaskDescription.Builder SetBackgroundColor(Color color);
+                public ActivityManager.TaskDescription.Builder SetIcon(int iconRes);
+                public ActivityManager.TaskDescription.Builder SetLabel(string? label);
+                public ActivityManager.TaskDescription.Builder SetNavigationBarColor(Color color);
+                public ActivityManager.TaskDescription.Builder SetPrimaryColor(Color color);
+                public ActivityManager.TaskDescription.Builder SetStatusBarColor(Color color);
+            }
         }
     }
     public class ActivityOptions : Object {
+        public virtual bool PendingIntentBackgroundActivityLaunchAllowed { get; set; }
+        public virtual int SplashScreenStyle { get; }
+        public static ActivityOptions MakeCustomAnimation(Context context, int enterResId, int exitResId, int backgroundColor);
+        public static ActivityOptions MakeLaunchIntoPip(PictureInPictureParams pictureInPictureParams);
+        public virtual ActivityOptions SetSplashScreenStyle(int style);
     }
     public sealed class ApplicationExitInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ApplicationExitInfoReason ReasonFreezer = ApplicationExitInfoReason.Freezer;
     }
     public enum ApplicationExitInfoReason {
+        Freezer = 14,
     }
     public class Dialog : Object, IDialogInterface, IDisposable, IJavaObject, IJavaPeerable, KeyEvent.ICallback, View.IOnCreateContextMenuListener, Window.ICallback {
+        public virtual IOnBackInvokedDispatcher OnBackInvokedDispatcher { get; }
     }
     public sealed class GameManager : Object {
+        public void SetGameState(GameState gameState);
     }
+    public sealed class GameState : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const GameStateMode ModeContent = GameStateMode.Content;
+        public const GameStateMode ModeGameplayInterruptible = GameStateMode.GameplayInterruptible;
+        public const GameStateMode ModeGameplayUninterruptible = GameStateMode.GameplayUninterruptible;
+        public const GameStateMode ModeNone = GameStateMode.None;
+        public const GameStateMode ModeUnknown = GameStateMode.Unknown;
+        public GameState(bool isLoading, int mode);
+        public GameState(bool isLoading, int mode, int label, int quality);
+        public static IParcelableCreator Creator { get; }
+        public bool IsLoading { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int Label { get; }
+        public int Mode { get; }
+        public int Quality { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel parcel, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum GameStateMode {
+        Content = 4,
+        GameplayInterruptible = 2,
+        GameplayUninterruptible = 3,
+        None = 1,
+        Unknown = 0,
+    }
     public class Instrumentation : Object {
+        public virtual void ResetInTouchMode();
     }
     public class KeyguardManager : Object {
+        public virtual void AddKeyguardLockedStateListener(IExecutor executor, KeyguardManager.IKeyguardLockedStateListener listener);
+        public virtual void RemoveKeyguardLockedStateListener(KeyguardManager.IKeyguardLockedStateListener listener);
+        public interface IKeyguardLockedStateListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnKeyguardLockedStateChanged(bool isKeyguardLocked);
+        }
+        public class KeyguardLockedStateEventArgs : EventArgs {
+            public KeyguardLockedStateEventArgs(bool isKeyguardLocked);
+            public bool IsKeyguardLocked { get; }
+        }
     }
+    public class LocaleConfig : Object {
+        public const LocaleConfigStatus StatusNotSpecified = LocaleConfigStatus.NotSpecified;
+        public const LocaleConfigStatus StatusParsingFailed = LocaleConfigStatus.ParsingFailed;
+        public const LocaleConfigStatus StatusSuccess = LocaleConfigStatus.Success;
+        public const string TagLocale = "locale";
+        public const string TagLocaleConfig = "locale-config";
+        public LocaleConfig(Context context);
+        protected LocaleConfig(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual int Status { get; }
+        public virtual LocaleList? SupportedLocales { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public enum LocaleConfigStatus {
+        NotSpecified = 1,
+        ParsingFailed = 2,
+        Success = 0,
+    }
+    public class LocaleManager : Object {
+        protected LocaleManager(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual LocaleList ApplicationLocales { get; set; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual LocaleList SystemLocales { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual LocaleList GetApplicationLocales(string appPackageName);
+    }
     public sealed class NotificationChannel : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public bool Blockable { get; set; }
     }
     public class NotificationManager : Object {
+        public virtual bool MatchesCallFilter(Uri uri);
     }
     public sealed class PictureInPictureParams : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public IList<RemoteAction> Actions { get; }
+        public Rational AspectRatio { get; }
+        public RemoteAction CloseAction { get; }
-        public static IParcelableCreator? Creator { get; }
+        public static IParcelableCreator Creator { get; }
+        public Rational ExpandedAspectRatio { get; }
+        public bool IsAutoEnterEnabled { get; }
+        public bool IsSeamlessResizeEnabled { get; }
+        public Rect SourceRectHint { get; }
+        public string Subtitle { get; }
+        public ICharSequence SubtitleFormatted { get; }
+        public string Title { get; }
+        public ICharSequence TitleFormatted { get; }
-        public void WriteToParcel(Parcel? @out, ParcelableWriteFlags flags);
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
         public class Builder : Object {
+            public Builder(PictureInPictureParams original);
+            public virtual PictureInPictureParams.Builder SetCloseAction(RemoteAction? action);
+            public virtual PictureInPictureParams.Builder SetExpandedAspectRatio(Rational? expandedAspectRatio);
+            public virtual PictureInPictureParams.Builder SetSubtitle(ICharSequence? subtitle);
+            public PictureInPictureParams.Builder SetSubtitle(string? subtitle);
+            public virtual PictureInPictureParams.Builder SetTitle(ICharSequence? title);
+            public PictureInPictureParams.Builder SetTitle(string? title);
         }
     }
     public abstract class Service : ContextWrapper, IComponentCallbacks, IComponentCallbacks2, IDisposable, IJavaObject, IJavaPeerable {
+        public const StopForegroundFlags StopForegroundLegacy = StopForegroundFlags.Legacy;
     }
     public class StatusBarManager : Object {
+        public const TileAddRequestError TileAddRequestErrorAppNotInForeground = TileAddRequestError.AppNotInForeground;
+        public const TileAddRequestError TileAddRequestErrorBadComponent = TileAddRequestError.BadComponent;
+        public const TileAddRequestError TileAddRequestErrorMismatchedPackage = TileAddRequestError.MismatchedPackage;
+        public const TileAddRequestError TileAddRequestErrorNoStatusBarService = TileAddRequestError.NoStatusBarService;
+        public const TileAddRequestError TileAddRequestErrorNotCurrentUser = TileAddRequestError.NotCurrentUser;
+        public const TileAddRequestError TileAddRequestErrorRequestInProgress = TileAddRequestError.RequestInProgress;
+        public const TileAddRequestResult TileAddRequestResultTileAdded = TileAddRequestResult.TileAdded;
+        public const TileAddRequestResult TileAddRequestResultTileAlreadyAdded = TileAddRequestResult.TileAlreadyAdded;
+        public const TileAddRequestResult TileAddRequestResultTileNotAdded = TileAddRequestResult.TileNotAdded;
+        public virtual void RequestAddTileService(ComponentName tileServiceComponentName, ICharSequence tileLabel, Icon icon, IExecutor resultExecutor, IConsumer resultCallback);
+        public void RequestAddTileService(ComponentName tileServiceComponentName, string tileLabel, Icon icon, IExecutor resultExecutor, IConsumer resultCallback);
     }
     public enum StopForegroundFlags {
+        Legacy = 0,
     }
+    public enum TileAddRequestError {
+        AppNotInForeground = 1004,
+        BadComponent = 1002,
+        MismatchedPackage = 1000,
+        NoStatusBarService = 1005,
+        NotCurrentUser = 1003,
+        RequestInProgress = 1001,
+    }
+    public enum TileAddRequestResult {
+        TileAdded = 2,
+        TileAlreadyAdded = 1,
+        TileNotAdded = 0,
+    }
     public sealed class UiAutomation : Object {
+        public void SetAnimationScale(float scale);
     }
     public sealed class VoiceInteractor : Object {
+        public string PackageName { get; }
     }
 }

Android.App.Admin

 namespace Android.App.Admin {
     public class DevicePolicyManager : Object {
+        public const ExtraResourceType ExtraResourceTypeDrawable = ExtraResourceType.Drawable;
+        public const ExtraResourceType ExtraResourceTypeString = ExtraResourceType.String;
+        public const WifiSecurity WifiSecurityEnterprise192 = WifiSecurity.Enterprise192;
+        public const WifiSecurity WifiSecurityEnterpriseEap = WifiSecurity.EnterpriseEap;
+        public const WifiSecurity WifiSecurityOpen = WifiSecurity.Open;
+        public const WifiSecurity WifiSecurityPersonal = WifiSecurity.Personal;
+        public const string ActionDevicePolicyResourceUpdated = "android.app.action.DEVICE_POLICY_RESOURCE_UPDATED";
+        public const string ExtraProvisioningAllowOffline = "android.app.extra.PROVISIONING_ALLOW_OFFLINE";
+        public const string ExtraProvisioningKeepScreenOn = "android.app.extra.PROVISIONING_KEEP_SCREEN_ON";
+        public const string ExtraProvisioningShouldLaunchResultIntent = "android.app.extra.PROVISIONING_SHOULD_LAUNCH_RESULT_INTENT";
+        public const string ExtraProvisioningUseMobileData = "android.app.extra.PROVISIONING_USE_MOBILE_DATA";
+        public const string ExtraResourceIds = "android.app.extra.RESOURCE_IDS";
+        public const string ExtraResourceType = "android.app.extra.RESOURCE_TYPE";
+        public const string ExtraResultLaunchIntent = "android.app.extra.RESULT_LAUNCH_INTENT";
+        public virtual string? DevicePolicyManagementRoleHolderPackage { get; }
+        public virtual int MinimumRequiredWifiSecurityLevel { get; set; }
+        public virtual IList<PreferentialNetworkServiceConfig> PreferentialNetworkServiceConfigs { get; set; }
+        public virtual DevicePolicyResourcesManager Resources { get; }
+        public virtual WifiSsidPolicy? WifiSsidPolicy { get; set; }
     }
+    public sealed class DevicePolicyResources : Object {
+        public const string Undefined = "UNDEFINED";
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public class DevicePolicyResourcesManager : Object {
+        protected DevicePolicyResourcesManager(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual Drawable? GetDrawable(string drawableId, string drawableStyle, ISupplier defaultDrawableLoader);
+        public virtual Drawable? GetDrawable(string drawableId, string drawableStyle, string drawableSource, ISupplier defaultDrawableLoader);
+        public virtual Icon? GetDrawableAsIcon(string drawableId, string drawableStyle, Icon? defaultIcon);
+        public virtual Icon? GetDrawableAsIcon(string drawableId, string drawableStyle, string drawableSource, Icon? defaultIcon);
+        public virtual Drawable? GetDrawableForDensity(string drawableId, string drawableStyle, int density, ISupplier defaultDrawableLoader);
+        public virtual Drawable? GetDrawableForDensity(string drawableId, string drawableStyle, string drawableSource, int density, ISupplier defaultDrawableLoader);
+        public virtual string? GetString(string stringId, ISupplier defaultStringLoader);
+        public virtual string? GetString(string stringId, ISupplier defaultStringLoader, params Object[] formatArgs);
+    }
+    public enum ExtraResourceType {
+        Drawable = 1,
+        String = 2,
+    }
+    public enum PreferentialNetworkId {
+        Five = 5,
+        Four = 4,
+        One = 1,
+        Three = 3,
+        Two = 2,
+    }
+    public sealed class PreferentialNetworkServiceConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const PreferentialNetworkId PreferentialNetworkId1 = PreferentialNetworkId.One;
+        public const PreferentialNetworkId PreferentialNetworkId2 = PreferentialNetworkId.Two;
+        public const PreferentialNetworkId PreferentialNetworkId3 = PreferentialNetworkId.Three;
+        public const PreferentialNetworkId PreferentialNetworkId4 = PreferentialNetworkId.Four;
+        public const PreferentialNetworkId PreferentialNetworkId5 = PreferentialNetworkId.Five;
+        public static IParcelableCreator Creator { get; }
+        public bool IsEnabled { get; }
+        public bool IsFallbackToDefaultConnectionAllowed { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int NetworkId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public int[] GetExcludedUids();
+        public int[] GetIncludedUids();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public PreferentialNetworkServiceConfig Build();
+            public PreferentialNetworkServiceConfig.Builder SetEnabled(bool isEnabled);
+            public PreferentialNetworkServiceConfig.Builder SetExcludedUids(int[] uids);
+            public PreferentialNetworkServiceConfig.Builder SetFallbackToDefaultConnectionAllowed(bool allowFallbackToDefaultConnection);
+            public PreferentialNetworkServiceConfig.Builder SetIncludedUids(int[] uids);
+            public PreferentialNetworkServiceConfig.Builder SetNetworkId(int preferenceId);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public class SecurityLog : Object {
+        public const SecurityLogTags TagBluetoothConnection = SecurityLogTags.BluetoothConnection;
+        public const SecurityLogTags TagBluetoothDisconnection = SecurityLogTags.BluetoothDisconnection;
+        public const SecurityLogTags TagPasswordChanged = SecurityLogTags.PasswordChanged;
+        public const SecurityLogTags TagWifiConnection = SecurityLogTags.WifiConnection;
+        public const SecurityLogTags TagWifiDisconnection = SecurityLogTags.WifiDisconnection;
     }
     public enum SecurityLogTags {
+        BluetoothConnection = 210039,
+        BluetoothDisconnection = 210040,
+        PasswordChanged = 210036,
+        WifiConnection = 210037,
+        WifiDisconnection = 210038,
     }
+    public enum WifiSecurity {
+        Enterprise192 = 3,
+        EnterpriseEap = 2,
+        Open = 0,
+        Personal = 1,
+    }
+    public sealed class WifiSsidPolicy : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const WifiSsidPolicyType WifiSsidPolicyTypeAllowlist = WifiSsidPolicyType.AllowList;
+        public const WifiSsidPolicyType WifiSsidPolicyTypeDenylist = WifiSsidPolicyType.DenyList;
+        public WifiSsidPolicy(int policyType, ICollection<WifiSsid> ssids);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int PolicyType { get; }
+        public ICollection<WifiSsid> Ssids { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum WifiSsidPolicyType {
+        AllowList = 0,
+        DenyList = 1,
+    }
 }

Android.App.AppSearch

 namespace Android.App.AppSearch {
     public sealed class GetSchemaResponse : Object {
+        public IDictionary<string, ICollection<ICollection<Integer>>> RequiredPermissionsForSchemaTypeVisibility { get; }
+        public ICollection<string> SchemaTypesNotDisplayedBySystem { get; }
+        public IDictionary<string, ICollection<PackageIdentifier>> SchemaTypesVisibleToPackages { get; }
         public sealed class Builder : Object {
+            public GetSchemaResponse.Builder AddSchemaTypeNotDisplayedBySystem(string schemaType);
+            public GetSchemaResponse.Builder SetRequiredPermissionsForSchemaTypeVisibility(string schemaType, ICollection<ICollection<Integer>> visibleToPermissions);
+            public GetSchemaResponse.Builder SetSchemaTypeVisibleToPackages(string schemaType, ICollection<PackageIdentifier> packageIdentifiers);
         }
     }
     public class GlobalSearchSession : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual void GetByDocumentId(string packageName, string databaseName, GetByDocumentIdRequest request, IExecutor executor, IBatchResultCallback callback);
+        public virtual void GetSchema(string packageName, string databaseName, IExecutor executor, IConsumer callback);
+        public virtual void RegisterObserverCallback(string targetPackageName, ObserverSpec spec, IExecutor executor, IObserverCallback observer);
+        public virtual void UnregisterObserverCallback(string targetPackageName, IObserverCallback observer);
     }
+    public enum SchemaRequestPermissions {
+        ReadAssistantAppSearchData = 6,
+        ReadCalendar = 2,
+        ReadContacts = 3,
+        ReadExternalStorage = 4,
+        ReadHomeAppSearchData = 5,
+        ReadSms = 1,
+    }
     public sealed class SearchResult : Object {
         public sealed class MatchInfo : Object {
+            public string? Submatch { get; }
+            public ICharSequence SubmatchFormatted { get; }
+            public SearchResult.MatchRange SubmatchRange { get; }
             public sealed class Builder : Object {
+                public SearchResult.MatchInfo.Builder SetSubmatchRange(SearchResult.MatchRange matchRange);
             }
         }
     }
     public sealed class SetSchemaRequest : Object {
+        public const SchemaRequestPermissions ReadAssistantAppSearchData = SchemaRequestPermissions.ReadAssistantAppSearchData;
+        public const SchemaRequestPermissions ReadCalendar = SchemaRequestPermissions.ReadCalendar;
+        public const SchemaRequestPermissions ReadContacts = SchemaRequestPermissions.ReadContacts;
+        public const SchemaRequestPermissions ReadExternalStorage = SchemaRequestPermissions.ReadExternalStorage;
+        public const SchemaRequestPermissions ReadHomeAppSearchData = SchemaRequestPermissions.ReadHomeAppSearchData;
+        public const SchemaRequestPermissions ReadSms = SchemaRequestPermissions.ReadSms;
+        public IDictionary<string, ICollection<ICollection<Integer>>> RequiredPermissionsForSchemaTypeVisibility { get; }
         public sealed class Builder : Object {
+            public SetSchemaRequest.Builder AddRequiredPermissionsForSchemaTypeVisibility(string schemaType, ICollection<Integer> permissions);
+            public SetSchemaRequest.Builder ClearRequiredPermissionsForSchemaTypeVisibility(string schemaType);
         }
     }
 }

Android.App.AppSearch.Observers

+namespace Android.App.AppSearch.Observers {
+    public sealed class DocumentChangeInfo : Object {
+        public DocumentChangeInfo(string packageName, string database, string @namespace, string schemaName, ICollection<string> changedDocumentIds);
+        public ICollection<string> ChangedDocumentIds { get; }
+        public string DatabaseName { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Namespace { get; }
+        public string PackageName { get; }
+        public string SchemaName { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public interface IObserverCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnDocumentChanged(DocumentChangeInfo changeInfo);
+        void OnSchemaChanged(SchemaChangeInfo changeInfo);
+    }
+    public sealed class ObserverSpec : Object {
+        public ICollection<string> FilterSchemas { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ObserverSpec.Builder AddFilterSchemas(ICollection<string> schemas);
+            public ObserverSpec.Builder AddFilterSchemas(params string[] schemas);
+            public ObserverSpec Build();
+        }
+    }
+    public sealed class SchemaChangeInfo : Object {
+        public SchemaChangeInfo(string packageName, string databaseName, ICollection<string> changedSchemaNames);
+        public ICollection<string> ChangedSchemaNames { get; }
+        public string DatabaseName { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string PackageName { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+}

Android.App.Job

 namespace Android.App.Job {
     public class JobInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const JobPriority PriorityDefault = JobPriority.Default;
+        public const JobPriority PriorityHigh = JobPriority.High;
+        public const JobPriority PriorityLow = JobPriority.Low;
+        public const JobPriority PriorityMax = JobPriority.Max;
+        public const JobPriority PriorityMin = JobPriority.Min;
+        public virtual long MinimumNetworkChunkBytes { get; }
+        public virtual int Priority { get; }
         public sealed class Builder : Object {
+            public JobInfo.Builder SetMinimumNetworkChunkBytes(long chunkSizeBytes);
+            public JobInfo.Builder SetPriority(int priority);
         }
     }
     public class JobParameters : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const StopReason StopReasonEstimatedAppLaunchTimeChanged = StopReason.EstimatedAppLaunchTimeChanged;
     }
+    public enum JobPriority {
+        Default = 300,
+        High = 400,
+        Low = 200,
+        Max = 500,
+        Min = 100,
+    }
     public sealed class JobWorkItem : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public JobWorkItem(Intent intent, long downloadBytes, long uploadBytes, long minimumChunkBytes);
+        public long MinimumNetworkChunkBytes { get; }
     }
     public enum StopReason {
+        EstimatedAppLaunchTimeChanged = 15,
     }
 }

Android.App.SdkSandbox

+namespace Android.App.SdkSandbox {
+    public enum SandboxState {
+        Disabled = 0,
+        EnabledProcessIsolation = 2,
+    }
+    public sealed class SdkSandboxManager : Object {
+        public const SandboxState SdkSandboxStateDisabled = SandboxState.Disabled;
+        public const SandboxState SdkSandboxStateEnabledProcessIsolation = SandboxState.EnabledProcessIsolation;
+        public override JniPeerMembers JniPeerMembers { get; }
+        public static int SdkSandboxState { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+}

Android.App.Usage

 namespace Android.App.Usage {
     public class NetworkStatsManager : Object {
-        public virtual NetworkStats QueryDetails(ConnectivityType networkType, string subscriberId, long startTime, long endTime);
+        public virtual NetworkStats? QueryDetails(ConnectivityType networkType, string? subscriberId, long startTime, long endTime);
-        public virtual NetworkStats QueryDetailsForUid(ConnectivityType networkType, string subscriberId, long startTime, long endTime, int uid);
+        public virtual NetworkStats QueryDetailsForUid(ConnectivityType networkType, string? subscriberId, long startTime, long endTime, int uid);
-        public virtual NetworkStats QueryDetailsForUidTag(ConnectivityType networkType, string subscriberId, long startTime, long endTime, int uid, int tag);
+        public virtual NetworkStats QueryDetailsForUidTag(ConnectivityType networkType, string? subscriberId, long startTime, long endTime, int uid, int tag);
-        public virtual NetworkStats QueryDetailsForUidTagState(ConnectivityType networkType, string subscriberId, long startTime, long endTime, int uid, int tag, NetworkUsageState state);
+        public virtual NetworkStats QueryDetailsForUidTagState(ConnectivityType networkType, string? subscriberId, long startTime, long endTime, int uid, int tag, NetworkUsageState state);
-        public virtual NetworkStats QuerySummary(ConnectivityType networkType, string subscriberId, long startTime, long endTime);
+        public virtual NetworkStats? QuerySummary(ConnectivityType networkType, string? subscriberId, long startTime, long endTime);
-        public virtual NetworkStats.Bucket QuerySummaryForDevice(ConnectivityType networkType, string subscriberId, long startTime, long endTime);
+        public virtual NetworkStats.Bucket? QuerySummaryForDevice(ConnectivityType networkType, string? subscriberId, long startTime, long endTime);
-        public virtual NetworkStats.Bucket QuerySummaryForUser(ConnectivityType networkType, string subscriberId, long startTime, long endTime);
+        public virtual NetworkStats.Bucket? QuerySummaryForUser(ConnectivityType networkType, string? subscriberId, long startTime, long endTime);
-        public virtual void RegisterUsageCallback(ConnectivityType networkType, string subscriberId, long thresholdBytes, NetworkStatsManager.UsageCallback callback);
+        public virtual void RegisterUsageCallback(ConnectivityType networkType, string? subscriberId, long thresholdBytes, NetworkStatsManager.UsageCallback callback);
-        public virtual void RegisterUsageCallback(ConnectivityType networkType, string subscriberId, long thresholdBytes, NetworkStatsManager.UsageCallback callback, Handler handler);
+        public virtual void RegisterUsageCallback(ConnectivityType networkType, string? subscriberId, long thresholdBytes, NetworkStatsManager.UsageCallback callback, Handler? handler);
     }
 }

Android.Bluetooth

 namespace Android.Bluetooth {
     public enum AddressType {
+        Unknown = 65535,
     }
+    public enum BitsPerSample {
+        BitsPerSample16 = 1,
+        BitsPerSample24 = 2,
+        BitsPerSample32 = 4,
+        None = 0,
+    }
     public sealed class BluetoothA2dp : Object, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
         public static class InterfaceConsts {
+            public const ProfileType CsipSetCoordinator = ProfileType.CsipSetCoordinator;
+            public const ProfileType HapClient = ProfileType.HapClient;
+            public const ProfileType LeAudio = ProfileType.LeAudio;
         }
     }
     public sealed class BluetoothAdapter : Object {
+        public int MaxConnectedAudioDevices { get; }
+        public BluetoothDevice GetRemoteLeDevice(string address, int addressType);
+        public int IsLeAudioBroadcastAssistantSupported();
+        public int IsLeAudioBroadcastSourceSupported();
+        public int IsLeAudioSupported();
     }
     public sealed class BluetoothClass : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const BluetoothClassProfile ProfileA2dp = BluetoothClassProfile.A2dp;
+        public const BluetoothClassProfile ProfileHeadset = BluetoothClassProfile.Headset;
+        public const BluetoothClassProfile ProfileHid = BluetoothClassProfile.Hid;
+        public bool DoesClassMatch(int profile);
         public class Device : Object {
+            public const DeviceClass PeripheralKeyboard = DeviceClass.PeripheralKeyboard;
+            public const DeviceClass PeripheralKeyboardPointing = DeviceClass.PeripheralKeyboardPointing;
+            public const DeviceClass PeripheralNonKeyboardNonPointing = DeviceClass.PeripheralNonKeyboardNonPointing;
+            public const DeviceClass PeripheralPointing = DeviceClass.PeripheralPointing;
         }
         public sealed class Service : Object {
+            public const ServiceClass LeAudio = ServiceClass.LeAudio;
         }
     }
+    public enum BluetoothClassProfile {
+        A2dp = 1,
+        Headset = 0,
+        Hid = 3,
+    }
+    public sealed class BluetoothCodecConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const BitsPerSample BitsPerSample16 = BitsPerSample.BitsPerSample16;
+        public const BitsPerSample BitsPerSample24 = BitsPerSample.BitsPerSample24;
+        public const BitsPerSample BitsPerSample32 = BitsPerSample.BitsPerSample32;
+        public const BitsPerSample BitsPerSampleNone = BitsPerSample.None;
+        public const ChannelMode ChannelModeMono = ChannelMode.Mono;
+        public const ChannelMode ChannelModeNone = ChannelMode.None;
+        public const ChannelMode ChannelModeStereo = ChannelMode.Stereo;
+        public const CodecType SourceCodecTypeAac = CodecType.Aac;
+        public const CodecType SourceCodecTypeAptx = CodecType.Aptx;
+        public const CodecType SourceCodecTypeAptxHd = CodecType.AptxHd;
+        public const CodecType SourceCodecTypeInvalid = CodecType.Invalid;
+        public const CodecType SourceCodecTypeLc3 = CodecType.Lc3;
+        public const CodecType SourceCodecTypeLdac = CodecType.Ldac;
+        public const CodecType SourceCodecTypeSbc = CodecType.Sbc;
+        public const SampleRate SampleRate176400 = SampleRate.SampleRate176400;
+        public const SampleRate SampleRate192000 = SampleRate.SampleRate192000;
+        public const SampleRate SampleRate44100 = SampleRate.SampleRate44100;
+        public const SampleRate SampleRate48000 = SampleRate.SampleRate48000;
+        public const SampleRate SampleRate88200 = SampleRate.SampleRate88200;
+        public const SampleRate SampleRate96000 = SampleRate.SampleRate96000;
+        public const SampleRate SampleRateNone = SampleRate.None;
+        public const int CodecPriorityDefault = 0;
+        public const int CodecPriorityDisabled = -1;
+        public const int CodecPriorityHighest = 1000000;
+        public int BitsPerSample { get; }
+        public int ChannelMode { get; }
+        public int CodecPriority { get; }
+        public long CodecSpecific1 { get; }
+        public long CodecSpecific2 { get; }
+        public long CodecSpecific3 { get; }
+        public long CodecSpecific4 { get; }
+        public int CodecType { get; }
+        public static IParcelableCreator Creator { get; }
+        public bool IsMandatoryCodec { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int SampleRate { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel? @out, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public BluetoothCodecConfig Build();
+            public BluetoothCodecConfig.Builder SetBitsPerSample(int bitsPerSample);
+            public BluetoothCodecConfig.Builder SetChannelMode(int channelMode);
+            public BluetoothCodecConfig.Builder SetCodecPriority(int codecPriority);
+            public BluetoothCodecConfig.Builder SetCodecSpecific1(long codecSpecific1);
+            public BluetoothCodecConfig.Builder SetCodecSpecific2(long codecSpecific2);
+            public BluetoothCodecConfig.Builder SetCodecSpecific3(long codecSpecific3);
+            public BluetoothCodecConfig.Builder SetCodecSpecific4(long codecSpecific4);
+            public BluetoothCodecConfig.Builder SetCodecType(int codecType);
+            public BluetoothCodecConfig.Builder SetSampleRate(int sampleRate);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class BluetoothCodecStatus : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string ExtraCodecStatus = "android.bluetooth.extra.CODEC_STATUS";
+        public BluetoothCodecConfig? CodecConfig { get; }
+        public IList<BluetoothCodecConfig> CodecsLocalCapabilities { get; }
+        public IList<BluetoothCodecConfig> CodecsSelectableCapabilities { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public bool IsCodecConfigSelectable(BluetoothCodecConfig? codecConfig);
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public BluetoothCodecStatus Build();
+            public BluetoothCodecStatus.Builder SetCodecConfig(BluetoothCodecConfig codecConfig);
+            public BluetoothCodecStatus.Builder SetCodecsLocalCapabilities(IList<BluetoothCodecConfig> codecsLocalCapabilities);
+            public BluetoothCodecStatus.Builder SetCodecsSelectableCapabilities(IList<BluetoothCodecConfig> codecsSelectableCapabilities);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class BluetoothCsipSetCoordinator : Object, IAutoCloseable, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
+        public const string ActionCsisConnectionStateChanged = "android.bluetooth.action.CSIS_CONNECTION_STATE_CHANGED";
+        public IList<BluetoothDevice> ConnectedDevices { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void Close();
+        public ProfileState GetConnectionState(BluetoothDevice? device);
+        public IList<BluetoothDevice> GetDevicesMatchingConnectionStates(ProfileState[] states);
+        public static class InterfaceConsts {
+            public const ProfileType CsipSetCoordinator = ProfileType.CsipSetCoordinator;
+            public const ProfileType HapClient = ProfileType.HapClient;
+            public const ProfileType LeAudio = ProfileType.LeAudio;
+            public const int HearingAid = 21;
+            public const string ExtraPreviousState = "android.bluetooth.profile.extra.PREVIOUS_STATE";
+            public const string ExtraState = "android.bluetooth.profile.extra.STATE";
+        }
+    }
     public sealed class BluetoothDevice : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const AddressType AddressTypeUnknown = AddressType.Unknown;
+        public const string ExtraIsCoordinatedSetMember = "android.bluetooth.extra.IS_COORDINATED_SET_MEMBER";
+        public const string ExtraTransport = "android.bluetooth.device.extra.TRANSPORT";
     }
     public sealed class BluetoothGatt : Object, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
+        public const GattStatus GattInsufficientAuthorization = GattStatus.InsufficientAuthorization;
+        public int WriteCharacteristic(BluetoothGattCharacteristic characteristic, byte[] value, int writeType);
+        public int WriteDescriptor(BluetoothGattDescriptor descriptor, byte[] value);
         public static class InterfaceConsts {
+            public const ProfileType CsipSetCoordinator = ProfileType.CsipSetCoordinator;
+            public const ProfileType HapClient = ProfileType.HapClient;
+            public const ProfileType LeAudio = ProfileType.LeAudio;
         }
     }
     public abstract class BluetoothGattCallback : Object {
+        public virtual void OnCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, byte[] value);
+        public virtual void OnCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, byte[] value, GattStatus status);
+        public virtual void OnDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, GattStatus status, byte[] value);
     }
     public sealed class BluetoothGattServer : Object, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
+        public int NotifyCharacteristicChanged(BluetoothDevice device, BluetoothGattCharacteristic characteristic, bool confirm, byte[] value);
         public static class InterfaceConsts {
+            public const ProfileType CsipSetCoordinator = ProfileType.CsipSetCoordinator;
+            public const ProfileType HapClient = ProfileType.HapClient;
+            public const ProfileType LeAudio = ProfileType.LeAudio;
         }
     }
     public sealed class BluetoothHeadset : Object, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
         public static class InterfaceConsts {
+            public const ProfileType CsipSetCoordinator = ProfileType.CsipSetCoordinator;
+            public const ProfileType HapClient = ProfileType.HapClient;
+            public const ProfileType LeAudio = ProfileType.LeAudio;
         }
     }
     public sealed class BluetoothHealth : Object, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
         public static class InterfaceConsts {
+            public const ProfileType CsipSetCoordinator = ProfileType.CsipSetCoordinator;
+            public const ProfileType HapClient = ProfileType.HapClient;
+            public const ProfileType LeAudio = ProfileType.LeAudio;
         }
     }
     public sealed class BluetoothHearingAid : Object, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
         public static class InterfaceConsts {
+            public const ProfileType CsipSetCoordinator = ProfileType.CsipSetCoordinator;
+            public const ProfileType HapClient = ProfileType.HapClient;
+            public const ProfileType LeAudio = ProfileType.LeAudio;
         }
     }
     public sealed class BluetoothHidDevice : Object, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
         public static class InterfaceConsts {
+            public const ProfileType CsipSetCoordinator = ProfileType.CsipSetCoordinator;
+            public const ProfileType HapClient = ProfileType.HapClient;
+            public const ProfileType LeAudio = ProfileType.LeAudio;
         }
     }
     public sealed class BluetoothLeAudio : Object, IAutoCloseable, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
+        public const int GroupIdInvalid = -1;
+        public BluetoothDevice? GetConnectedGroupLeadDevice(int groupId);
+        public int GetGroupId(BluetoothDevice device);
         public static class InterfaceConsts {
+            public const ProfileType CsipSetCoordinator = ProfileType.CsipSetCoordinator;
+            public const ProfileType HapClient = ProfileType.HapClient;
+            public const ProfileType LeAudio = ProfileType.LeAudio;
         }
     }
+    public sealed class BluetoothLeAudioCodecConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const BluetoothLeBitsPerSample BitsPerSample16 = BluetoothLeBitsPerSample.BitsPerSample16;
+        public const BluetoothLeBitsPerSample BitsPerSample24 = BluetoothLeBitsPerSample.BitsPerSample24;
+        public const BluetoothLeBitsPerSample BitsPerSample32 = BluetoothLeBitsPerSample.BitsPerSample32;
+        public const BluetoothLeBitsPerSample BitsPerSampleNone = BluetoothLeBitsPerSample.None;
+        public const BluetoothLeChannelCount ChannelCount1 = BluetoothLeChannelCount.One;
+        public const BluetoothLeChannelCount ChannelCount2 = BluetoothLeChannelCount.Two;
+        public const BluetoothLeChannelCount ChannelCountNone = BluetoothLeChannelCount.None;
+        public const BluetoothLeFrameDuration FrameDuration10000 = BluetoothLeFrameDuration.FrameDuration10000;
+        public const BluetoothLeFrameDuration FrameDuration7500 = BluetoothLeFrameDuration.FrameDuration7500;
+        public const BluetoothLeFrameDuration FrameDurationNone = BluetoothLeFrameDuration.None;
+        public const BluetoothLeSampleRate SampleRate16000 = BluetoothLeSampleRate.SampleRate16000;
+        public const BluetoothLeSampleRate SampleRate24000 = BluetoothLeSampleRate.SampleRate24000;
+        public const BluetoothLeSampleRate SampleRate32000 = BluetoothLeSampleRate.SampleRate32000;
+        public const BluetoothLeSampleRate SampleRate44100 = BluetoothLeSampleRate.SampleRate44100;
+        public const BluetoothLeSampleRate SampleRate48000 = BluetoothLeSampleRate.SampleRate48000;
+        public const BluetoothLeSampleRate SampleRate8000 = BluetoothLeSampleRate.SampleRate8000;
+        public const BluetoothLeSampleRate SampleRateNone = BluetoothLeSampleRate.None;
+        public const BluetoothLeSourceCodecType SourceCodecTypeInvalid = BluetoothLeSourceCodecType.Invalid;
+        public const BluetoothLeSourceCodecType SourceCodecTypeLc3 = BluetoothLeSourceCodecType.Lc3;
+        public const int CodecPriorityDefault = 0;
+        public const int CodecPriorityDisabled = -1;
+        public const int CodecPriorityHighest = 1000000;
+        public int BitsPerSample { get; }
+        public int ChannelCount { get; }
+        public string CodecName { get; }
+        public int CodecPriority { get; }
+        public int CodecType { get; }
+        public static IParcelableCreator Creator { get; }
+        public int FrameDuration { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int MaxOctetsPerFrame { get; }
+        public int MinOctetsPerFrame { get; }
+        public int OctetsPerFrame { get; }
+        public int SampleRate { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public Builder(BluetoothLeAudioCodecConfig config);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public BluetoothLeAudioCodecConfig Build();
+            public BluetoothLeAudioCodecConfig.Builder SetBitsPerSample(int bitsPerSample);
+            public BluetoothLeAudioCodecConfig.Builder SetChannelCount(int channelCount);
+            public BluetoothLeAudioCodecConfig.Builder SetCodecPriority(int codecPriority);
+            public BluetoothLeAudioCodecConfig.Builder SetCodecType(int codecType);
+            public BluetoothLeAudioCodecConfig.Builder SetFrameDuration(int frameDuration);
+            public BluetoothLeAudioCodecConfig.Builder SetMaxOctetsPerFrame(int maxOctetsPerFrame);
+            public BluetoothLeAudioCodecConfig.Builder SetMinOctetsPerFrame(int minOctetsPerFrame);
+            public BluetoothLeAudioCodecConfig.Builder SetOctetsPerFrame(int octetsPerFrame);
+            public BluetoothLeAudioCodecConfig.Builder SetSampleRate(int sampleRate);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class BluetoothLeAudioCodecStatus : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string ExtraLeAudioCodecStatus = "android.bluetooth.extra.LE_AUDIO_CODEC_STATUS";
+        public BluetoothLeAudioCodecStatus(BluetoothLeAudioCodecConfig? inputCodecConfig, BluetoothLeAudioCodecConfig? outputCodecConfig, IList<BluetoothLeAudioCodecConfig> inputCodecsLocalCapabilities, IList<BluetoothLeAudioCodecConfig> outputCodecsLocalCapabilities, IList<BluetoothLeAudioCodecConfig> inputCodecsSelectableCapabilities, IList<BluetoothLeAudioCodecConfig> outputCodecsSelectableCapabilities);
+        public static IParcelableCreator Creator { get; }
+        public BluetoothLeAudioCodecConfig? InputCodecConfig { get; }
+        public IList<BluetoothLeAudioCodecConfig> InputCodecLocalCapabilities { get; }
+        public IList<BluetoothLeAudioCodecConfig> InputCodecSelectableCapabilities { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public BluetoothLeAudioCodecConfig? OutputCodecConfig { get; }
+        public IList<BluetoothLeAudioCodecConfig> OutputCodecLocalCapabilities { get; }
+        public IList<BluetoothLeAudioCodecConfig> OutputCodecSelectableCapabilities { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public bool IsInputCodecConfigSelectable(BluetoothLeAudioCodecConfig? codecConfig);
+        public bool IsOutputCodecConfigSelectable(BluetoothLeAudioCodecConfig? codecConfig);
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum BluetoothLeBitsPerSample {
+        BitsPerSample16 = 1,
+        BitsPerSample24 = 2,
+        BitsPerSample32 = 8,
+        None = 0,
+    }
+    public enum BluetoothLeChannelCount {
+        None = 0,
+        One = 1,
+        Two = 2,
+    }
+    public enum BluetoothLeFrameDuration {
+        FrameDuration10000 = 2,
+        FrameDuration7500 = 1,
+        None = 0,
+    }
+    public enum BluetoothLeSampleRate {
+        None = 0,
+        SampleRate16000 = 4,
+        SampleRate24000 = 16,
+        SampleRate32000 = 32,
+        SampleRate44100 = 64,
+        SampleRate48000 = 128,
+        SampleRate8000 = 1,
+    }
+    public enum BluetoothLeSourceCodecType {
+        Invalid = 1000000,
+        Lc3 = 0,
+    }
     public abstract class BluetoothProfile : Object {
+        public const ProfileType CsipSetCoordinator = ProfileType.CsipSetCoordinator;
+        public const ProfileType HapClient = ProfileType.HapClient;
+        public const ProfileType LeAudio = ProfileType.LeAudio;
     }
     public sealed class BluetoothStatusCodes : Object {
+        public const CurrentBluetoothStatusCodes ErrorGattWriteNotAllowed = CurrentBluetoothStatusCodes.ErrorGattWriteNotAllowed;
+        public const CurrentBluetoothStatusCodes ErrorGattWriteRequestBusy = CurrentBluetoothStatusCodes.ErrorGattWriteRequestBusy;
+        public const CurrentBluetoothStatusCodes ErrorProfileServiceNotBound = CurrentBluetoothStatusCodes.ErrorProfileServiceNotBound;
+        public const CurrentBluetoothStatusCodes FeatureNotSupported = CurrentBluetoothStatusCodes.FeatureNotSupported;
+        public const CurrentBluetoothStatusCodes FeatureSupported = CurrentBluetoothStatusCodes.FeatureSupported;
     }
+    public enum ChannelMode {
+        Mono = 1,
+        None = 0,
+        Stereo = 2,
+    }
+    public enum CodecType {
+        Aac = 1,
+        Aptx = 2,
+        AptxHd = 3,
+        Invalid = 1000000,
+        Lc3 = 5,
+        Ldac = 4,
+        Sbc = 0,
+    }
     public enum CurrentBluetoothStatusCodes {
+        ErrorGattWriteNotAllowed = 200,
+        ErrorGattWriteRequestBusy = 201,
+        ErrorProfileServiceNotBound = 9,
+        FeatureNotSupported = 11,
+        FeatureSupported = 10,
     }
     public enum DeviceClass {
+        PeripheralKeyboard = 1344,
+        PeripheralKeyboardPointing = 1472,
+        PeripheralNonKeyboardNonPointing = 1280,
+        PeripheralPointing = 1408,
     }
     public enum GattStatus {
+        InsufficientAuthorization = 8,
     }
     public enum ProfileType {
+        CsipSetCoordinator = 25,
+        HapClient = 28,
+        LeAudio = 22,
     }
+    public enum SampleRate {
+        None = 0,
+        SampleRate176400 = 16,
+        SampleRate192000 = 32,
+        SampleRate44100 = 1,
+        SampleRate48000 = 2,
+        SampleRate88200 = 4,
+        SampleRate96000 = 8,
+    }
     public enum ServiceClass {
+        LeAudio = 16384,
     }
 }

Android.Bluetooth.LE

 namespace Android.Bluetooth.LE {
     public sealed class AdvertiseData : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public IList<TransportDiscoveryData> TransportDiscoveryData { get; }
         public sealed class Builder : Object {
+            public AdvertiseData.Builder AddTransportDiscoveryData(TransportDiscoveryData transportDiscoveryData);
         }
     }
     public abstract class ScanCallback : Object {
+        public const ScanFailure ScanFailedOutOfHardwareResources = ScanFailure.OutOfHardwareResources;
+        public const ScanFailure ScanFailedScanningTooFrequently = ScanFailure.ScanningTooFrequently;
     }
     public enum ScanFailure {
+        OutOfHardwareResources = 5,
+        ScanningTooFrequently = 6,
     }
     public sealed class ScanFilter : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int AdvertisingDataType { get; }
+        public byte[] GetAdvertisingData();
+        public byte[] GetAdvertisingDataMask();
         public sealed class Builder : Object {
+            public ScanFilter.Builder SetAdvertisingDataType(int advertisingDataType);
+            public ScanFilter.Builder SetAdvertisingDataTypeWithData(int advertisingDataType, byte[] advertisingData, byte[] advertisingDataMask);
         }
     }
     public sealed class ScanRecord : Object {
+        public const ScanRecordDataType DataType3dInformationData = ScanRecordDataType.Type3DInformationData;
+        public const ScanRecordDataType DataTypeAdvertisingInterval = ScanRecordDataType.AdvertisingInterval;
+        public const ScanRecordDataType DataTypeAdvertisingIntervalLong = ScanRecordDataType.AdvertisingIntervalLong;
+        public const ScanRecordDataType DataTypeAppearance = ScanRecordDataType.Appearance;
+        public const ScanRecordDataType DataTypeBigInfo = ScanRecordDataType.BigInfo;
+        public const ScanRecordDataType DataTypeBroadcastCode = ScanRecordDataType.BroadcastCode;
+        public const ScanRecordDataType DataTypeChannelMapUpdateIndication = ScanRecordDataType.ChannelMapUpdateIndication;
+        public const ScanRecordDataType DataTypeClassOfDevice = ScanRecordDataType.ClassOfDevice;
+        public const ScanRecordDataType DataTypeDeviceId = ScanRecordDataType.DeviceId;
+        public const ScanRecordDataType DataTypeFlags = ScanRecordDataType.Flags;
+        public const ScanRecordDataType DataTypeIndoorPositioning = ScanRecordDataType.IndoorPositioning;
+        public const ScanRecordDataType DataTypeLeBluetoothDeviceAddress = ScanRecordDataType.LeBluetoothDeviceAddress;
+        public const ScanRecordDataType DataTypeLeRole = ScanRecordDataType.LeRole;
+        public const ScanRecordDataType DataTypeLeSecureConnectionsConfirmationValue = ScanRecordDataType.LeSecureConnectionsConfirmationValue;
+        public const ScanRecordDataType DataTypeLeSecureConnectionsRandomValue = ScanRecordDataType.LeSecureConnectionsRandomValue;
+        public const ScanRecordDataType DataTypeLeSupportedFeatures = ScanRecordDataType.LeSupportedFeatures;
+        public const ScanRecordDataType DataTypeLocalNameComplete = ScanRecordDataType.LocalNameComplete;
+        public const ScanRecordDataType DataTypeLocalNameShort = ScanRecordDataType.LocalNameShort;
+        public const ScanRecordDataType DataTypeManufacturerSpecificData = ScanRecordDataType.ManufacturerSpecificData;
+        public const ScanRecordDataType DataTypeMeshBeacon = ScanRecordDataType.MeshBeacon;
+        public const ScanRecordDataType DataTypeMeshMessage = ScanRecordDataType.MeshMessage;
+        public const ScanRecordDataType DataTypeNone = ScanRecordDataType.None;
+        public const ScanRecordDataType DataTypePbAdv = ScanRecordDataType.PbAdv;
+        public const ScanRecordDataType DataTypePublicTargetAddress = ScanRecordDataType.PublicTargetAddress;
+        public const ScanRecordDataType DataTypeRandomTargetAddress = ScanRecordDataType.RandomTargetAddress;
+        public const ScanRecordDataType DataTypeResolvableSetIdentifier = ScanRecordDataType.ResolvableSetIdentifier;
+        public const ScanRecordDataType DataTypeSecurityManagerOutOfBandFlags = ScanRecordDataType.SecurityManagerOutOfBandFlags;
+        public const ScanRecordDataType DataTypeServiceData128Bit = ScanRecordDataType.ServiceData128Bit;
+        public const ScanRecordDataType DataTypeServiceData16Bit = ScanRecordDataType.ServiceData16Bit;
+        public const ScanRecordDataType DataTypeServiceData32Bit = ScanRecordDataType.ServiceData32Bit;
+        public const ScanRecordDataType DataTypeServiceSolicitationUuids128Bit = ScanRecordDataType.ServiceSolicitationUuids128Bit;
+        public const ScanRecordDataType DataTypeServiceSolicitationUuids16Bit = ScanRecordDataType.ServiceSolicitationUuids16Bit;
+        public const ScanRecordDataType DataTypeServiceSolicitationUuids32Bit = ScanRecordDataType.ServiceSolicitationUuids32Bit;
+        public const ScanRecordDataType DataTypeServiceUuids128BitComplete = ScanRecordDataType.ServiceUuids128BitComplete;
+        public const ScanRecordDataType DataTypeServiceUuids128BitPartial = ScanRecordDataType.ServiceUuids128BitPartial;
+        public const ScanRecordDataType DataTypeServiceUuids16BitComplete = ScanRecordDataType.ServiceUuids16BitComplete;
+        public const ScanRecordDataType DataTypeServiceUuids16BitPartial = ScanRecordDataType.ServiceUuids16BitPartial;
+        public const ScanRecordDataType DataTypeServiceUuids32BitComplete = ScanRecordDataType.ServiceUuids32BitComplete;
+        public const ScanRecordDataType DataTypeServiceUuids32BitPartial = ScanRecordDataType.ServiceUuids32BitPartial;
+        public const ScanRecordDataType DataTypeSimplePairingHashC = ScanRecordDataType.SimplePairingHashC;
+        public const ScanRecordDataType DataTypeSimplePairingHashC256 = ScanRecordDataType.SimplePairingHashC256;
+        public const ScanRecordDataType DataTypeSimplePairingRandomizerR = ScanRecordDataType.SimplePairingRandomizerR;
+        public const ScanRecordDataType DataTypeSimplePairingRandomizerR256 = ScanRecordDataType.SimplePairingRandomizerR256;
+        public const ScanRecordDataType DataTypeSlaveConnectionIntervalRange = ScanRecordDataType.SlaveConnectionIntervalRange;
+        public const ScanRecordDataType DataTypeTransportDiscoveryData = ScanRecordDataType.TransportDiscoveryData;
+        public const ScanRecordDataType DataTypeTxPowerLevel = ScanRecordDataType.TxPowerLevel;
+        public const ScanRecordDataType DataTypeUri = ScanRecordDataType.Uri;
+        public IDictionary<Integer, byte[]> AdvertisingDataMap { get; }
     }
+    public enum ScanRecordDataType {
+        AdvertisingInterval = 26,
+        AdvertisingIntervalLong = 47,
+        Appearance = 25,
+        BigInfo = 44,
+        BroadcastCode = 45,
+        ChannelMapUpdateIndication = 40,
+        ClassOfDevice = 13,
+        DeviceId = 16,
+        Flags = 1,
+        IndoorPositioning = 37,
+        LeBluetoothDeviceAddress = 27,
+        LeRole = 28,
+        LeSecureConnectionsConfirmationValue = 34,
+        LeSecureConnectionsRandomValue = 35,
+        LeSupportedFeatures = 39,
+        LocalNameComplete = 9,
+        LocalNameShort = 8,
+        ManufacturerSpecificData = 255,
+        MeshBeacon = 43,
+        MeshMessage = 42,
+        None = -1,
+        PbAdv = 41,
+        PublicTargetAddress = 23,
+        RandomTargetAddress = 24,
+        ResolvableSetIdentifier = 46,
+        SecurityManagerOutOfBandFlags = 17,
+        ServiceData128Bit = 33,
+        ServiceData16Bit = 22,
+        ServiceData32Bit = 32,
+        ServiceSolicitationUuids128Bit = 21,
+        ServiceSolicitationUuids16Bit = 20,
+        ServiceSolicitationUuids32Bit = 31,
+        ServiceUuids128BitComplete = 7,
+        ServiceUuids128BitPartial = 6,
+        ServiceUuids16BitComplete = 3,
+        ServiceUuids16BitPartial = 2,
+        ServiceUuids32BitComplete = 5,
+        ServiceUuids32BitPartial = 4,
+        SimplePairingHashC = 14,
+        SimplePairingHashC256 = 29,
+        SimplePairingRandomizerR = 15,
+        SimplePairingRandomizerR256 = 30,
+        SlaveConnectionIntervalRange = 18,
+        TransportDiscoveryData = 38,
+        TxPowerLevel = 10,
+        Type3DInformationData = 61,
+        Uri = 36,
+    }
+    public sealed class TransportBlock : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public TransportBlock(int orgId, int tdsFlags, int transportDataLength, byte[]? transportData);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int OrgId { get; }
+        public int TdsFlags { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int TransportDataLength { get; }
+        public int DescribeContents();
+        public byte[]? GetTransportData();
+        public byte[]? ToByteArray();
+        public int TotalBytes();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class TransportDiscoveryData : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public TransportDiscoveryData(byte[] transportDiscoveryData);
+        public TransportDiscoveryData(int transportDataType, IList<TransportBlock> transportBlocks);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public IList<TransportBlock> TransportBlocks { get; }
+        public int TransportDataType { get; }
+        public int DescribeContents();
+        public byte[]? ToByteArray();
+        public int TotalBytes();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
 }

Android.Companion

 namespace Android.Companion {
+    public sealed class AssociationInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public MacAddress? DeviceMacAddress { get; }
+        public string? DeviceProfile { get; }
+        public string? DisplayName { get; }
+        public ICharSequence? DisplayNameFormatted { get; }
+        public int Id { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public sealed class AssociationRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string DeviceProfileAppStreaming = "android.app.role.COMPANION_DEVICE_APP_STREAMING";
+        public const string DeviceProfileAutomotiveProjection = "android.app.role.SYSTEM_AUTOMOTIVE_PROJECTION";
+        public const string DeviceProfileComputer = "android.app.role.COMPANION_DEVICE_COMPUTER";
+        public string? DeviceProfile { get; }
+        public string? DisplayName { get; }
+        public ICharSequence? DisplayNameFormatted { get; }
+        public bool IsForceConfirmation { get; }
+        public bool IsSelfManaged { get; }
+        public bool IsSingleDevice { get; }
         public sealed class Builder : Object {
+            public AssociationRequest.Builder SetDisplayName(ICharSequence displayName);
+            public AssociationRequest.Builder SetDisplayName(string displayName);
+            public AssociationRequest.Builder SetForceConfirmation(bool forceConfirmation);
+            public AssociationRequest.Builder SetSelfManaged(bool selfManaged);
         }
     }
     public sealed class CompanionDeviceManager : Object {
+        public const string ExtraAssociation = "android.companion.extra.ASSOCIATION";
+        public IList<AssociationInfo> MyAssociations { get; }
+        public void Associate(AssociationRequest request, IExecutor executor, CompanionDeviceManager.Callback callback);
+        public void Disassociate(int associationId);
         public abstract class Callback : Object {
+            public virtual void OnAssociationCreated(AssociationInfo associationInfo);
+            public virtual void OnAssociationPending(IntentSender intentSender);
-            public abstract void OnDeviceFound(IntentSender? chooserLauncher);
+            public virtual void OnDeviceFound(IntentSender intentSender);
         }
     }
     public abstract class CompanionDeviceService : Service {
+        public virtual void OnDeviceAppeared(AssociationInfo associationInfo);
-        public abstract void OnDeviceAppeared(string address);
+        public virtual void OnDeviceAppeared(string address);
+        public virtual void OnDeviceDisappeared(AssociationInfo associationInfo);
-        public abstract void OnDeviceDisappeared(string address);
+        public virtual void OnDeviceDisappeared(string address);
     }
 }

Android.Content

 namespace Android.Content {
     public sealed class AttributionSource : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static AttributionSource MyAttributionSource();
         public sealed class Builder : Object {
+            public Builder(AttributionSource current);
         }
     }
     public class ClipDescription : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string ExtraIsSensitive = "android.content.extra.IS_SENSITIVE";
     }
     public abstract class Context : Object {
+        public const ReceiverFlags ReceiverExported = ReceiverFlags.Exported;
+        public const ReceiverFlags ReceiverNotExported = ReceiverFlags.NotExported;
+        public const string LocaleService = "locale";
+        public const string StatusBarService = "statusbar";
+        public const string TvInteractiveAppService = "tv_interactive_app";
+        public virtual void RevokeSelfPermissionOnKill(string permName);
+        public virtual void RevokeSelfPermissionsOnKill(ICollection<string> permissions);
     }
     public class Intent : Object, ICloneable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ActivityFlags FlagReceiverVisibleToInstantApps = ActivityFlags.ResetTaskIfNeeded;
+        public const string ActionApplicationLocaleChanged = "android.intent.action.APPLICATION_LOCALE_CHANGED";
+        public const string ActionSafetyCenter = "android.intent.action.SAFETY_CENTER";
+        public const string ActionShowWorkApps = "android.intent.action.SHOW_WORK_APPS";
+        public const string CategoryAppFitness = "android.intent.category.APP_FITNESS";
+        public const string CategoryAppWeather = "android.intent.category.APP_WEATHER";
+        public const string ExtraLocaleList = "android.intent.extra.LOCALE_LIST";
+        public virtual Object[]? GetParcelableArrayExtra(string? name, Class clazz);
+        public virtual IList? GetParcelableArrayListExtra(string? name, Class clazz);
+        public virtual Object? GetParcelableExtra(string? name, Class clazz);
+        public virtual Object? GetSerializableExtra(string? name, Class clazz);
     }
     public class IntentFilter : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual IPredicate AsPredicate();
+        public virtual IPredicate AsPredicateWithTypeResolution(ContentResolver resolver);
     }
+    public enum ReceiverFlags {
+        Exported = 2,
+        NotExported = 4,
+        VisibleToInstantApps = 1,
+    }
 }

Android.Content.PM

 namespace Android.Content.PM {
     public class ActivityInfo : ComponentInfo, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ActivityInfoFlags FlagAllowUntrustedActivityEmbedding = ActivityInfoFlags.AllowUntrustedActivityEmbedding;
+        public virtual ICollection<string> KnownActivityEmbeddingCerts { get; }
     }
     public enum ActivityInfoFlags {
+        AllowUntrustedActivityEmbedding = 268435456,
     }
     public class ApplicationInfo : PackageItemInfo, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual ICollection<string> KnownActivityEmbeddingCerts { get; }
     }
+    public sealed class Capability : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Name { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(string name);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public Capability Build();
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class CapabilityParams : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public IList<string> Aliases { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Name { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public string Value { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(string key, string value);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public CapabilityParams.Builder AddAlias(string alias);
+            public CapabilityParams Build();
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public class CrossProfileApps : Object {
+        public virtual void StartMainActivity(ComponentName component, UserHandle targetUser, Activity? callingActivity, Bundle? options);
     }
     public sealed class InstallSourceInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int PackageSource { get; }
     }
     public class PackageInstaller : Object {
+        public const PackageSource PackageSourceDownloadedFile = PackageSource.DownloadedFile;
+        public const PackageSource PackageSourceLocalFile = PackageSource.LocalFile;
+        public const PackageSource PackageSourceOther = PackageSource.Other;
+        public const PackageSource PackageSourceStore = PackageSource.Store;
+        public const PackageSource PackageSourceUnspecified = PackageSource.Unspecified;
         public class Session : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+            public virtual void RequestChecksums(string name, int required, IList<Certificate> trustedInstallers, IExecutor executor, PackageManager.IOnChecksumsReadyListener onChecksumsReadyListener);
         }
         public class SessionInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public const SessionStatus SessionActivationFailed = SessionStatus.ActivationFailed;
+            public const SessionStatus SessionConflict = SessionStatus.Conflict;
+            public const SessionStatus SessionNoError = SessionStatus.NoError;
+            public const SessionStatus SessionUnknownError = SessionStatus.UnknownError;
+            public const SessionStatus SessionVerificationFailed = SessionStatus.VerificationFailed;
+            public virtual int PackageSource { get; }
         }
         public class SessionParams : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public virtual void SetPackageSource(int packageSource);
         }
     }
     public abstract class PackageManager : Object {
+        public const string FeatureExpandedPictureInPicture = "android.software.expanded_picture_in_picture";
+        public const string FeatureSensorAccelerometerLimitedAxes = "android.hardware.sensor.accelerometer_limited_axes";
+        public const string FeatureSensorAccelerometerLimitedAxesUncalibrated = "android.hardware.sensor.accelerometer_limited_axes_uncalibrated";
+        public const string FeatureSensorDynamicHeadTracker = "android.hardware.sensor.dynamic.head_tracker";
+        public const string FeatureSensorGyroscopeLimitedAxes = "android.hardware.sensor.gyroscope_limited_axes";
+        public const string FeatureSensorGyroscopeLimitedAxesUncalibrated = "android.hardware.sensor.gyroscope_limited_axes_uncalibrated";
+        public const string FeatureSensorHeading = "android.hardware.sensor.heading";
+        public const string FeatureTelecom = "android.software.telecom";
+        public const string FeatureTelephonyCalling = "android.hardware.telephony.calling";
+        public const string FeatureTelephonyData = "android.hardware.telephony.data";
+        public const string FeatureTelephonyEuiccMep = "android.hardware.telephony.euicc.mep";
+        public const string FeatureTelephonyMessaging = "android.hardware.telephony.messaging";
+        public const string FeatureTelephonyRadioAccess = "android.hardware.telephony.radio.access";
+        public const string FeatureTelephonySubscription = "android.hardware.telephony.subscription";
+        public const string FeatureWindowMagnification = "android.software.window_magnification";
+        public virtual bool CanPackageQuery(string sourcePackageName, string targetPackageName);
+        public virtual ActivityInfo GetActivityInfo(ComponentName component, PackageManager.ComponentInfoFlags flags);
+        public virtual ApplicationInfo GetApplicationInfo(string packageName, PackageManager.ApplicationInfoFlags flags);
+        public virtual IList<ApplicationInfo> GetInstalledApplications(PackageManager.ApplicationInfoFlags flags);
+        public virtual IList<PackageInfo> GetInstalledPackages(PackageManager.PackageInfoFlags flags);
+        public virtual IntentSender GetLaunchIntentSenderForPackage(string packageName);
+        public virtual PackageInfo? GetPackageArchiveInfo(string archiveFilePath, PackageManager.PackageInfoFlags flags);
+        public virtual int[]? GetPackageGids(string packageName, PackageManager.PackageInfoFlags flags);
+        public virtual PackageInfo GetPackageInfo(VersionedPackage versionedPackage, PackageManager.PackageInfoFlags flags);
+        public virtual PackageInfo GetPackageInfo(string packageName, PackageManager.PackageInfoFlags flags);
+        public virtual IList<PackageInfo> GetPackagesHoldingPermissions(string[] permissions, PackageManager.PackageInfoFlags flags);
+        public virtual int GetPackageUid(string packageName, PackageManager.PackageInfoFlags flags);
+        public virtual ProviderInfo GetProviderInfo(ComponentName component, PackageManager.ComponentInfoFlags flags);
+        public virtual ActivityInfo GetReceiverInfo(ComponentName component, PackageManager.ComponentInfoFlags flags);
+        public virtual ServiceInfo GetServiceInfo(ComponentName component, PackageManager.ComponentInfoFlags flags);
+        public virtual IList<SharedLibraryInfo> GetSharedLibraries(PackageManager.PackageInfoFlags flags);
+        public virtual IList<ResolveInfo> QueryBroadcastReceivers(Intent intent, PackageManager.ResolveInfoFlags flags);
+        public virtual IList<ProviderInfo> QueryContentProviders(string? processName, int uid, PackageManager.ComponentInfoFlags flags);
+        public virtual IList<ResolveInfo> QueryIntentActivities(Intent intent, PackageManager.ResolveInfoFlags flags);
+        public virtual IList<ResolveInfo> QueryIntentActivityOptions(ComponentName? caller, IList<Intent>? specifics, Intent intent, PackageInfoFlags flags);
+        public virtual IList<ResolveInfo> QueryIntentContentProviders(Intent intent, PackageManager.ResolveInfoFlags flags);
+        public virtual IList<ResolveInfo> QueryIntentServices(Intent intent, PackageManager.ResolveInfoFlags flags);
+        public virtual ResolveInfo? ResolveActivity(Intent intent, PackageManager.ResolveInfoFlags flags);
+        public virtual ProviderInfo? ResolveContentProvider(string authority, PackageManager.ComponentInfoFlags flags);
+        public virtual ResolveInfo? ResolveService(Intent intent, PackageManager.ResolveInfoFlags flags);
+        public virtual void SetComponentEnabledSettings(IList<PackageManager.ComponentEnabledSetting> settings);
+        public sealed class ApplicationInfoFlags : Object {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public long Value { get; }
+            public static PackageManager.ApplicationInfoFlags Of(long value);
+        }
+        public sealed class ComponentEnabledSetting : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public ComponentEnabledSetting(ComponentName componentName, int newState, int flags);
+            public ComponentName? ComponentName { get; }
+            public static IParcelableCreator Creator { get; }
+            public int EnabledFlags { get; }
+            public int EnabledState { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public int DescribeContents();
+            public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+            public static class InterfaceConsts {
+                public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+                public const int ContentsFileDescriptor = 1;
+            }
+        }
+        public sealed class ComponentInfoFlags : Object {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public long Value { get; }
+            public static PackageManager.ComponentInfoFlags Of(long value);
+        }
+        public sealed class PackageInfoFlags : Object {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public long Value { get; }
+            public static PackageManager.PackageInfoFlags Of(long value);
+        }
+        public sealed class ResolveInfoFlags : Object {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public long Value { get; }
+            public static PackageManager.ResolveInfoFlags Of(long value);
+        }
     }
+    public enum PackageSource {
+        DownloadedFile = 4,
+        LocalFile = 3,
+        Other = 1,
+        Store = 2,
+        Unspecified = 0,
+    }
+    public enum SessionStatus {
+        ActivationFailed = 2,
+        Conflict = 4,
+        NoError = 0,
+        UnknownError = 3,
+        VerificationFailed = 1,
+    }
     public sealed class SharedLibraryInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const SharedLibraryType TypeSdkPackage = SharedLibraryType.SdkPackage;
     }
     public enum SharedLibraryType {
+        SdkPackage = 3,
     }
     public sealed class ShortcutInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ShortcutSurface SurfaceLauncher = ShortcutSurface.Launcher;
+        public IList<Capability> Capabilities { get; }
+        public int ExcludedFromSurfaces { get; }
+        public static ShortcutInfo CreateFromGenericDocument(Context context, GenericDocument document);
+        public IList<CapabilityParams> GetCapabilityParams(Capability capability);
+        public bool IsExcludedFromSurfaces(int surface);
         public class Builder : Object {
+            public virtual ShortcutInfo.Builder AddCapabilityBinding(Capability capability, CapabilityParams? capabilityParams);
+            public virtual ShortcutInfo.Builder SetExcludedFromSurfaces(int surfaces);
         }
     }
+    public enum ShortcutSurface {
+        Default = 0,
+        Launcher = 1,
+    }
 }

Android.Content.Res

 namespace Android.Content.Res {
     public sealed class Configuration : Object, IComparable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static Configuration GenerateDelta(Configuration base, Configuration change);
     }
 }

Android.Database

 namespace Android.Database {
+    public class CursorWindowAllocationException : RuntimeException {
+        protected CursorWindowAllocationException(IntPtr javaReference, JniHandleOwnership transfer);
+        public CursorWindowAllocationException(string description);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
 }

Android.Database.Sqlite

 namespace Android.Database.Sqlite {
     public class SQLiteDatabase : SQLiteClosable {
+        public const string JournalModeDelete = "DELETE";
+        public const string JournalModeMemory = "MEMORY";
+        public const string JournalModeOff = "OFF";
+        public const string JournalModePersist = "PERSIST";
+        public const string JournalModeTruncate = "TRUNCATE";
+        public const string JournalModeWal = "WAL";
+        public const string SyncModeExtra = "EXTRA";
+        public const string SyncModeFull = "FULL";
+        public const string SyncModeNormal = "NORMAL";
+        public const string SyncModeOff = "OFF";
     }
 }

Android.Graphics

 namespace Android.Graphics {
     public sealed class Bitmap : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public sealed class Config : Enum {
+            public static Bitmap.Config Rgba1010102 { get; }
         }
     }
     public class BitmapShader : Shader {
+        public const BitmapShaderFilterMode FilterModeDefault = BitmapShaderFilterMode.Default;
+        public const BitmapShaderFilterMode FilterModeLinear = BitmapShaderFilterMode.Linear;
+        public const BitmapShaderFilterMode FilterModeNearest = BitmapShaderFilterMode.Nearest;
+        public virtual int FilterMode { get; set; }
     }
+    public enum BitmapShaderFilterMode {
+        Default = 0,
+        Linear = 2,
+        Nearest = 1,
+    }
     public class Canvas : Object {
-        public virtual bool GetClipBounds(Rect? bounds);
+        public virtual bool GetClipBounds(Rect bounds);
     }
     public abstract class ColorSpace : Object {
+        public virtual int DataSpace { get; }
+        public static ColorSpace? GetFromDataSpace(int dataSpace);
     }
     public class HardwareRenderer : Object {
+        public static bool DrawingEnabled { get; set; }
     }
     public class Paint : Object {
+        public virtual void GetFontMetricsInt(ICharSequence text, int start, int count, int contextStart, int contextCount, bool isRtl, Paint.FontMetricsInt outMetrics);
+        public virtual void GetFontMetricsInt(char[] text, int start, int count, int contextStart, int contextCount, bool isRtl, Paint.FontMetricsInt outMetrics);
+        public void GetFontMetricsInt(string text, int start, int count, int contextStart, int contextCount, bool isRtl, Paint.FontMetricsInt outMetrics);
     }
     public sealed class RenderEffect : Object {
+        public static RenderEffect CreateRuntimeShaderEffect(RuntimeShader shader, string uniformShaderName);
     }
+    public class RuntimeShader : Shader {
+        protected RuntimeShader(IntPtr javaReference, JniHandleOwnership transfer);
+        public RuntimeShader(string shader);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void SetColorUniform(string uniformName, Color color);
+        public virtual void SetColorUniform(string uniformName, ColorObject color);
+        public virtual void SetColorUniform(string uniformName, long color);
+        public virtual void SetFloatUniform(string uniformName, float value);
+        public virtual void SetFloatUniform(string uniformName, float value1, float value2);
+        public virtual void SetFloatUniform(string uniformName, float value1, float value2, float value3);
+        public virtual void SetFloatUniform(string uniformName, float value1, float value2, float value3, float value4);
+        public virtual void SetFloatUniform(string uniformName, float[] values);
+        public virtual void SetInputBuffer(string shaderName, BitmapShader shader);
+        public virtual void SetInputShader(string shaderName, Shader shader);
+        public virtual void SetIntUniform(string uniformName, int value);
+        public virtual void SetIntUniform(string uniformName, int value1, int value2);
+        public virtual void SetIntUniform(string uniformName, int value1, int value2, int value3);
+        public virtual void SetIntUniform(string uniformName, int value1, int value2, int value3, int value4);
+        public virtual void SetIntUniform(string uniformName, int[] values);
+    }
     public class SurfaceTexture : Object {
+        public virtual int DataSpace { get; }
     }
 }

Android.Graphics.Drawables

 namespace Android.Graphics.Drawables {
     public class AdaptiveIconDrawable : Drawable, Drawable.ICallback, IDisposable, IJavaObject, IJavaPeerable {
+        public AdaptiveIconDrawable(Drawable backgroundDrawable, Drawable foregroundDrawable, Drawable monochromeDrawable);
+        public virtual Drawable Monochrome { get; }
     }
     public abstract class Drawable : Object {
-        protected virtual void OnBoundsChange(Rect? bounds);
+        protected virtual void OnBoundsChange(Rect bounds);
-        protected virtual bool OnStateChange(int[]? state);
+        protected virtual bool OnStateChange(int[] state);
     }
     public sealed class Icon : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
-        public static IParcelableCreator Creator { get; }
+        public static IParcelableCreator? Creator { get; }
-        public static Icon CreateWithAdaptiveBitmap(Bitmap bits);
+        public static Icon CreateWithAdaptiveBitmap(Bitmap? bits);
-        public static Icon CreateWithBitmap(Bitmap bits);
+        public static Icon CreateWithBitmap(Bitmap? bits);
-        public static Icon CreateWithContentUri(Uri uri);
+        public static Icon CreateWithContentUri(Uri? uri);
-        public static Icon CreateWithContentUri(string uri);
+        public static Icon CreateWithContentUri(string? uri);
-        public static Icon CreateWithData(byte[] data, int offset, int length);
+        public static Icon CreateWithData(byte[]? data, int offset, int length);
-        public static Icon CreateWithFilePath(string path);
+        public static Icon CreateWithFilePath(string? path);
-        public static Icon CreateWithResource(Context context, int resId);
+        public static Icon CreateWithResource(Context? context, int resId);
-        public static Icon CreateWithResource(string resPackage, int resId);
+        public static Icon CreateWithResource(string? resPackage, int resId);
-        public Drawable LoadDrawable(Context context);
+        public Drawable? LoadDrawable(Context? context);
-        public void LoadDrawableAsync(Context context, Icon.IOnDrawableLoadedListener listener, Handler handler);
+        public void LoadDrawableAsync(Context context, Icon.IOnDrawableLoadedListener? listener, Handler? handler);
-        public Icon SetTintList(ColorStateList tintList);
+        public Icon SetTintList(ColorStateList? tintList);
-        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
     }
 }

Android.Graphics.Text

 namespace Android.Graphics.Text {
+    public enum HyphenationMode {
+        Fast = 2,
+        None = 0,
+        Normal = 1,
+    }
+    public sealed class LineBreakConfig : Object {
+        public const LineBreakStyle LineBreakStyleLoose = LineBreakStyle.Loose;
+        public const LineBreakStyle LineBreakStyleNone = LineBreakStyle.None;
+        public const LineBreakStyle LineBreakStyleNormal = LineBreakStyle.Normal;
+        public const LineBreakStyle LineBreakStyleStrict = LineBreakStyle.Strict;
+        public const LineBreakWordStyle LineBreakWordStyleNone = LineBreakWordStyle.None;
+        public const LineBreakWordStyle LineBreakWordStylePhrase = LineBreakWordStyle.Phrase;
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int LineBreakStyle { get; }
+        public int LineBreakWordStyle { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public LineBreakConfig Build();
+            public LineBreakConfig.Builder SetLineBreakStyle(int lineBreakStyle);
+            public LineBreakConfig.Builder SetLineBreakWordStyle(int lineBreakWordStyle);
+        }
+    }
+    public enum LineBreakStyle {
+        Loose = 1,
+        None = 0,
+        Normal = 2,
+        Strict = 3,
+    }
+    public enum LineBreakWordStyle {
+        None = 0,
+        Phrase = 1,
+    }
     public class MeasuredText : Object {
+        public virtual void GetFontMetricsInt(int start, int end, Paint.FontMetricsInt outMetrics);
         public sealed class Builder : Object {
+            public const HyphenationMode HyphenationModeFast = HyphenationMode.Fast;
+            public const HyphenationMode HyphenationModeNone = HyphenationMode.None;
+            public const HyphenationMode HyphenationModeNormal = HyphenationMode.Normal;
+            public MeasuredText.Builder AppendStyleRun(Paint paint, LineBreakConfig? lineBreakConfig, int length, bool isRtl);
+            public MeasuredText.Builder SetComputeHyphenation(int mode);
         }
     }
 }

Android.Hardware

 namespace Android.Hardware {
+    public sealed class DataSpace : Object {
+        public const DataSpaceRange RangeExtended = DataSpaceRange.Extended;
+        public const DataSpaceRange RangeFull = DataSpaceRange.Full;
+        public const DataSpaceRange RangeLimited = DataSpaceRange.Limited;
+        public const DataSpaceRange RangeUnspecified = DataSpaceRange.Unspecified;
+        public const DataSpaceStandard StandardAdobeRgb = DataSpaceStandard.AdobeRgb;
+        public const DataSpaceStandard StandardBt2020 = DataSpaceStandard.Bt2020;
+        public const DataSpaceStandard StandardBt2020ConstantLuminance = DataSpaceStandard.Bt2020ConstantLuminance;
+        public const DataSpaceStandard StandardBt470m = DataSpaceStandard.Bt470m;
+        public const DataSpaceStandard StandardBt601525 = DataSpaceStandard.Bt601525;
+        public const DataSpaceStandard StandardBt601525Unadjusted = DataSpaceStandard.Bt601525Unadjusted;
+        public const DataSpaceStandard StandardBt601625 = DataSpaceStandard.Bt601625;
+        public const DataSpaceStandard StandardBt601625Unadjusted = DataSpaceStandard.Bt601625Unadjusted;
+        public const DataSpaceStandard StandardBt709 = DataSpaceStandard.Bt709;
+        public const DataSpaceStandard StandardDciP3 = DataSpaceStandard.DciP3;
+        public const DataSpaceStandard StandardFilm = DataSpaceStandard.Film;
+        public const DataSpaceStandard StandardUnspecified = DataSpaceStandard.Unspecified;
+        public const DataSpaceTransfer TransferGamma22 = DataSpaceTransfer.Gamma22;
+        public const DataSpaceTransfer TransferGamma26 = DataSpaceTransfer.Gamma26;
+        public const DataSpaceTransfer TransferGamma28 = DataSpaceTransfer.Gamma28;
+        public const DataSpaceTransfer TransferHlg = DataSpaceTransfer.Hlg;
+        public const DataSpaceTransfer TransferLinear = DataSpaceTransfer.Linear;
+        public const DataSpaceTransfer TransferSmpte170m = DataSpaceTransfer.Smpte170m;
+        public const DataSpaceTransfer TransferSrgb = DataSpaceTransfer.Srgb;
+        public const DataSpaceTransfer TransferSt2084 = DataSpaceTransfer.St2084;
+        public const DataSpaceTransfer TransferUnspecified = DataSpaceTransfer.Unspecified;
+        public const DataSpaceType DataspaceAdobeRgb = DataSpaceType.AdobeRgb;
+        public const DataSpaceType DataspaceBt2020 = DataSpaceType.Bt2020;
+        public const DataSpaceType DataspaceBt2020Pq = DataSpaceType.Bt2020Pq;
+        public const DataSpaceType DataspaceBt601525 = DataSpaceType.Bt601525;
+        public const DataSpaceType DataspaceBt601625 = DataSpaceType.Bt601625;
+        public const DataSpaceType DataspaceBt709 = DataSpaceType.Bt709;
+        public const DataSpaceType DataspaceDciP3 = DataSpaceType.DciP3;
+        public const DataSpaceType DataspaceDisplayP3 = DataSpaceType.DisplayP3;
+        public const DataSpaceType DataspaceJfif = DataSpaceType.Jfif;
+        public const DataSpaceType DataspaceScrgb = DataSpaceType.Scrgb;
+        public const DataSpaceType DataspaceScrgbLinear = DataSpaceType.ScrgbLinear;
+        public const DataSpaceType DataspaceSrgb = DataSpaceType.Srgb;
+        public const DataSpaceType DataspaceSrgbLinear = DataSpaceType.SrgbLinear;
+        public const DataSpaceType DataspaceUnknown = DataSpaceType.Unknown;
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public static int GetRange(int dataSpace);
+        public static int GetStandard(int dataSpace);
+        public static int GetTransfer(int dataSpace);
+        public static int Pack(int standard, int transfer, int range);
+    }
+    public enum DataSpaceRange {
+        Extended = 402653184,
+        Full = 134217728,
+        Limited = 268435456,
+        Unspecified = 0,
+    }
+    public enum DataSpaceStandard {
+        AdobeRgb = 720896,
+        Bt2020 = 393216,
+        Bt2020ConstantLuminance = 458752,
+        Bt470m = 524288,
+        Bt601525 = 262144,
+        Bt601525Unadjusted = 327680,
+        Bt601625 = 131072,
+        Bt601625Unadjusted = 196608,
+        Bt709 = 65536,
+        DciP3 = 655360,
+        Film = 589824,
+        Unspecified = 0,
+    }
+    public enum DataSpaceTransfer {
+        Gamma22 = 16777216,
+        Gamma26 = 20971520,
+        Gamma28 = 25165824,
+        Hlg = 33554432,
+        Linear = 4194304,
+        Smpte170m = 12582912,
+        Srgb = 8388608,
+        St2084 = 29360128,
+        Unspecified = 0,
+    }
+    public enum DataSpaceType {
+        AdobeRgb = 151715840,
+        Bt2020 = 147193856,
+        Bt2020Pq = 163971072,
+        Bt601525 = 281280512,
+        Bt601625 = 281149440,
+        Bt709 = 281083904,
+        DciP3 = 155844608,
+        DisplayP3 = 143261696,
+        Jfif = 146931712,
+        Scrgb = 411107328,
+        ScrgbLinear = 406913024,
+        Srgb = 142671872,
+        SrgbLinear = 138477568,
+        Unknown = 0,
+    }
     public sealed class HardwareBuffer : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const HardwareBufferFormat YcbcrP010 = HardwareBufferFormat.YcbcrP010;
+        public const long UsageComposerOverlay = (long)2048;
+        public const long UsageFrontBuffer = (long)4294967296;
     }
     public enum HardwareBufferFormat {
+        YcbcrP010 = 54,
     }
     public class Sensor : Object {
+        public const SensorType TypeAccelerometerLimitedAxes = SensorType.AccelerometerLimitedAxes;
+        public const SensorType TypeAccelerometerLimitedAxesUncalibrated = SensorType.AccelerometerLimitedAxesUncalibrated;
+        public const SensorType TypeGyroscopeLimitedAxes = SensorType.GyroscopeLimitedAxes;
+        public const SensorType TypeGyroscopeLimitedAxesUncalibrated = SensorType.GyroscopeLimitedAxesUncalibrated;
+        public const SensorType TypeHeading = SensorType.Heading;
+        public const SensorType TypeHeadTracker = SensorType.HeadTracker;
+        public const string StringTypeAccelerometerLimitedAxes = "android.sensor.accelerometer_limited_axes";
+        public const string StringTypeAccelerometerLimitedAxesUncalibrated = "android.sensor.accelerometer_limited_axes_uncalibrated";
+        public const string StringTypeGyroscopeLimitedAxes = "android.sensor.gyroscope_limited_axes";
+        public const string StringTypeGyroscopeLimitedAxesUncalibrated = "android.sensor.gyroscope_limited_axes_uncalibrated";
+        public const string StringTypeHeading = "android.sensor.heading";
+        public const string StringTypeHeadTracker = "android.sensor.head_tracker";
     }
     public class SensorEvent : Object {
+        public bool FirstEventAfterDiscontinuity { get; set; }
     }
     public sealed class SensorPrivacyManager : Object {
+        public const SensorPrivacyToggleType ToggleTypeHardware = SensorPrivacyToggleType.Hardware;
+        public const SensorPrivacyToggleType ToggleTypeSoftware = SensorPrivacyToggleType.Software;
+        public bool SupportsSensorToggle(int toggleType, int sensor);
     }
+    public enum SensorPrivacyToggleType {
+        Hardware = 2,
+        Software = 1,
+    }
     public enum SensorType {
+        AccelerometerLimitedAxes = 38,
+        AccelerometerLimitedAxesUncalibrated = 40,
+        GyroscopeLimitedAxes = 39,
+        GyroscopeLimitedAxesUncalibrated = 41,
+        Heading = 42,
+        HeadTracker = 37,
     }
+    public sealed class SyncFence : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const long SignalTimeInvalid = (long)-1;
+        public const long SignalTimePending = (long)9223372036854775807;
+        public static IParcelableCreator Creator { get; }
+        public bool IsValid { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public long SignalTime { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public bool AwaitForever();
+        public void Close();
+        public int DescribeContents();
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
 }

Android.Hardware.Biometrics

 namespace Android.Hardware.Biometrics {
     public class BiometricPrompt : Object {
         public sealed class CryptoObject : Object {
+            public CryptoObject(PresentationSession session);
+            public PresentationSession? PresentationSession { get; }
         }
     }
 }

Android.Hardware.Camera2

 namespace Android.Hardware.Camera2 {
+    public enum AutomotiveLensFacing {
+        ExteriorFront = 1,
+        ExteriorLeft = 3,
+        ExteriorOther = 0,
+        ExteriorRear = 2,
+        ExteriorRight = 4,
+        InteriorOther = 5,
+        InteriorSeatRow1Center = 7,
+        InteriorSeatRow1Left = 6,
+        InteriorSeatRow1Right = 8,
+        InteriorSeatRow2Center = 10,
+        InteriorSeatRow2Left = 9,
+        InteriorSeatRow2Right = 11,
+        InteriorSeatRow3Center = 13,
+        InteriorSeatRow3Left = 12,
+        InteriorSeatRow3Right = 14,
+    }
+    public enum AutomotiveLocation {
+        ExteriorFront = 2,
+        ExteriorLeft = 4,
+        ExteriorOther = 1,
+        ExteriorRear = 3,
+        ExteriorRight = 5,
+        ExtraFront = 7,
+        ExtraLeft = 9,
+        ExtraOther = 6,
+        ExtraRear = 8,
+        ExtraRight = 10,
+        Interior = 0,
+    }
     public sealed class CameraCharacteristics : CameraMetadata {
+        public static CameraCharacteristics.Key AutomotiveLensFacing { get; }
+        public static CameraCharacteristics.Key AutomotiveLocation { get; }
+        public static CameraCharacteristics.Key FlashInfoStrengthDefaultLevel { get; }
+        public static CameraCharacteristics.Key FlashInfoStrengthMaximumLevel { get; }
+        public static CameraCharacteristics.Key RequestAvailableDynamicRangeProfiles { get; }
+        public static CameraCharacteristics.Key RequestRecommendedTenBitDynamicRangeProfile { get; }
+        public static CameraCharacteristics.Key ScalerAvailableStreamUseCases { get; }
+        public static CameraCharacteristics.Key ScalerMandatoryPreviewStabilizationOutputStreamCombinations { get; }
+        public static CameraCharacteristics.Key ScalerMandatoryTenBitOutputStreamCombinations { get; }
+        public static CameraCharacteristics.Key ScalerMandatoryUseCaseStreamCombinations { get; }
     }
     public sealed class CameraExtensionCharacteristics : Object {
+        public const CameraExtensionTypes ExtensionFaceRetouch = CameraExtensionTypes.Beauty;
+        public ICollection<CaptureRequest.Key> GetAvailableCaptureRequestKeys(int extension);
+        public ICollection<CaptureResult.Key> GetAvailableCaptureResultKeys(int extension);
     }
     public abstract class CameraExtensionSession : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
         public abstract class ExtensionCaptureCallback : Object {
+            public virtual void OnCaptureResultAvailable(CameraExtensionSession session, CaptureRequest request, TotalCaptureResult result);
         }
     }
     public enum CameraExtensionTypes {
+        FaceRetouch = 1,
     }
     public sealed class CameraManager : Object {
+        public int GetTorchStrengthLevel(string cameraId);
+        public void TurnOnTorchWithStrengthLevel(string cameraId, int torchStrength);
         public abstract class TorchCallback : Object {
+            public virtual void OnTorchStrengthLevelChanged(string cameraId, int newStrengthLevel);
         }
     }
     public abstract class CameraMetadata : Object {
+        public const AutomotiveLensFacing AutomotiveLensFacingExteriorFront = AutomotiveLensFacing.ExteriorFront;
+        public const AutomotiveLensFacing AutomotiveLensFacingExteriorLeft = AutomotiveLensFacing.ExteriorLeft;
+        public const AutomotiveLensFacing AutomotiveLensFacingExteriorOther = AutomotiveLensFacing.ExteriorOther;
+        public const AutomotiveLensFacing AutomotiveLensFacingExteriorRear = AutomotiveLensFacing.ExteriorRear;
+        public const AutomotiveLensFacing AutomotiveLensFacingExteriorRight = AutomotiveLensFacing.ExteriorRight;
+        public const AutomotiveLensFacing AutomotiveLensFacingInteriorOther = AutomotiveLensFacing.InteriorOther;
+        public const AutomotiveLensFacing AutomotiveLensFacingInteriorSeatRow1Center = AutomotiveLensFacing.InteriorSeatRow1Center;
+        public const AutomotiveLensFacing AutomotiveLensFacingInteriorSeatRow1Left = AutomotiveLensFacing.InteriorSeatRow1Left;
+        public const AutomotiveLensFacing AutomotiveLensFacingInteriorSeatRow1Right = AutomotiveLensFacing.InteriorSeatRow1Right;
+        public const AutomotiveLensFacing AutomotiveLensFacingInteriorSeatRow2Center = AutomotiveLensFacing.InteriorSeatRow2Center;
+        public const AutomotiveLensFacing AutomotiveLensFacingInteriorSeatRow2Left = AutomotiveLensFacing.InteriorSeatRow2Left;
+        public const AutomotiveLensFacing AutomotiveLensFacingInteriorSeatRow2Right = AutomotiveLensFacing.InteriorSeatRow2Right;
+        public const AutomotiveLensFacing AutomotiveLensFacingInteriorSeatRow3Center = AutomotiveLensFacing.InteriorSeatRow3Center;
+        public const AutomotiveLensFacing AutomotiveLensFacingInteriorSeatRow3Left = AutomotiveLensFacing.InteriorSeatRow3Left;
+        public const AutomotiveLensFacing AutomotiveLensFacingInteriorSeatRow3Right = AutomotiveLensFacing.InteriorSeatRow3Right;
+        public const AutomotiveLocation AutomotiveLocationExteriorFront = AutomotiveLocation.ExteriorFront;
+        public const AutomotiveLocation AutomotiveLocationExteriorLeft = AutomotiveLocation.ExteriorLeft;
+        public const AutomotiveLocation AutomotiveLocationExteriorOther = AutomotiveLocation.ExteriorOther;
+        public const AutomotiveLocation AutomotiveLocationExteriorRear = AutomotiveLocation.ExteriorRear;
+        public const AutomotiveLocation AutomotiveLocationExteriorRight = AutomotiveLocation.ExteriorRight;
+        public const AutomotiveLocation AutomotiveLocationExtraFront = AutomotiveLocation.ExtraFront;
+        public const AutomotiveLocation AutomotiveLocationExtraLeft = AutomotiveLocation.ExtraLeft;
+        public const AutomotiveLocation AutomotiveLocationExtraOther = AutomotiveLocation.ExtraOther;
+        public const AutomotiveLocation AutomotiveLocationExtraRear = AutomotiveLocation.ExtraRear;
+        public const AutomotiveLocation AutomotiveLocationExtraRight = AutomotiveLocation.ExtraRight;
+        public const AutomotiveLocation AutomotiveLocationInterior = AutomotiveLocation.Interior;
+        public const ControlVideoStabilizationMode ControlVideoStabilizationModePreviewStabilization = ControlVideoStabilizationMode.PreviewStabilization;
+        public const RequestAvailableCapabilities RequestAvailableCapabilitiesDynamicRangeTenBit = RequestAvailableCapabilities.DynamicRangeTenBit;
+        public const RequestAvailableCapabilities RequestAvailableCapabilitiesStreamUseCase = RequestAvailableCapabilities.StreamUseCase;
+        public const ScalerAvailableStreamUseCases ScalerAvailableStreamUseCasesDefault = ScalerAvailableStreamUseCases.Default;
+        public const ScalerAvailableStreamUseCases ScalerAvailableStreamUseCasesPreview = ScalerAvailableStreamUseCases.Preview;
+        public const ScalerAvailableStreamUseCases ScalerAvailableStreamUseCasesPreviewVideoStill = ScalerAvailableStreamUseCases.PreviewVideoStill;
+        public const ScalerAvailableStreamUseCases ScalerAvailableStreamUseCasesStillCapture = ScalerAvailableStreamUseCases.StillCapture;
+        public const ScalerAvailableStreamUseCases ScalerAvailableStreamUseCasesVideoCall = ScalerAvailableStreamUseCases.VideoCall;
+        public const ScalerAvailableStreamUseCases ScalerAvailableStreamUseCasesVideoRecord = ScalerAvailableStreamUseCases.VideoRecord;
+        public const int LensPoseReferenceAutomotive = 3;
     }
     public enum ControlVideoStabilizationMode {
+        PreviewStabilization = 2,
     }
     public enum RequestAvailableCapabilities {
+        DynamicRangeTenBit = 18,
+        StreamUseCase = 19,
     }
+    public enum ScalerAvailableStreamUseCases {
+        Default = 0,
+        Preview = 1,
+        PreviewVideoStill = 4,
+        StillCapture = 2,
+        VideoCall = 5,
+        VideoRecord = 3,
+    }
 }

Android.Hardware.Camera2.Params

 namespace Android.Hardware.Camera2.Params {
+    public sealed class DynamicRangeProfiles : Object {
+        public const long DolbyVision10bHdrOem = (long)64;
+        public const long DolbyVision10bHdrOemPo = (long)128;
+        public const long DolbyVision10bHdrRef = (long)16;
+        public const long DolbyVision10bHdrRefPo = (long)32;
+        public const long DolbyVision8bHdrOem = (long)1024;
+        public const long DolbyVision8bHdrOemPo = (long)2048;
+        public const long DolbyVision8bHdrRef = (long)256;
+        public const long DolbyVision8bHdrRefPo = (long)512;
+        public const long Hdr10 = (long)4;
+        public const long Hdr10Plus = (long)8;
+        public const long Hlg10 = (long)2;
+        public const long PublicMax = (long)4096;
+        public const long Standard = (long)1;
+        public DynamicRangeProfiles(long[] elements);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public ICollection<Long> SupportedProfiles { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public ICollection<Long> GetProfileCaptureRequestConstraints(long profile);
+        public bool IsExtraLatencyPresent(long profile);
+    }
     public sealed class MandatoryStreamCombination : Object {
         public sealed class MandatoryStreamInformation : Object {
+            public long StreamUseCase { get; }
+            public int Get10BitFormat();
+            public bool Is10BitCapable();
         }
     }
+    public enum MirrorMode {
+        Auto = 0,
+        H = 2,
+        None = 1,
+        V = 3,
+    }
     public sealed class OutputConfiguration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const MirrorMode MirrorModeAuto = MirrorMode.Auto;
+        public const MirrorMode MirrorModeH = MirrorMode.H;
+        public const MirrorMode MirrorModeNone = MirrorMode.None;
+        public const MirrorMode MirrorModeV = MirrorMode.V;
+        public const TimestampBase TimestampBaseChoreographerSynced = TimestampBase.ChoreographerSynced;
+        public const TimestampBase TimestampBaseDefault = TimestampBase.Default;
+        public const TimestampBase TimestampBaseMonotonic = TimestampBase.Monotonic;
+        public const TimestampBase TimestampBaseRealtime = TimestampBase.Realtime;
+        public const TimestampBase TimestampBaseSensor = TimestampBase.Sensor;
+        public long DynamicRangeProfile { get; set; }
+        public int MirrorMode { get; set; }
+        public long StreamUseCase { get; set; }
+        public int TimestampBase { get; set; }
     }
     public sealed class RecommendedStreamConfigurationMap : Object {
+        public const UsecaseMode Usecase10bitOutput = UsecaseMode.TenBitOutput;
     }
+    public enum TimestampBase {
+        ChoreographerSynced = 4,
+        Default = 0,
+        Monotonic = 2,
+        Realtime = 3,
+        Sensor = 1,
+    }
     public enum UsecaseMode {
+        TenBitOutput = 8,
     }
 }

Android.Icu.Lang

 namespace Android.Icu.Lang {
     public sealed class UCharacter : Object {
+        public static int GetCodePoint(int lead, int trail);
+        public static bool IsHighSurrogate(int codePoint);
+        public static bool IsLowSurrogate(int codePoint);
+        public static bool IsSurrogatePair(int high, int low);
+        public static int ToCodePoint(int high, int low);
         public interface IJoiningGroup {
+            public const int ThinYeh = 102;
+            public const int VerticalTail = 103;
         }
         public abstract class JoiningGroup : Object {
+            public const int ThinYeh = 102;
+            public const int VerticalTail = 103;
         }
         public sealed class UnicodeBlock : Character.Subset {
+            public const int ArabicExtendedBId = 309;
+            public const int CyproMinoanId = 310;
+            public const int EthiopicExtendedBId = 311;
+            public const int KanaExtendedBId = 312;
+            public const int LatinExtendedFId = 313;
+            public const int LatinExtendedGId = 314;
+            public const int OldUyghurId = 315;
+            public const int TangsaId = 316;
+            public const int TotoId = 317;
+            public const int UnifiedCanadianAboriginalSyllabicsExtendedAId = 318;
+            public const int VithkuqiId = 319;
+            public const int ZnamennyMusicalNotationId = 320;
+            public static UCharacter.UnicodeBlock ArabicExtendedB { get; }
+            public static UCharacter.UnicodeBlock CyproMinoan { get; }
+            public static UCharacter.UnicodeBlock EthiopicExtendedB { get; }
+            public static UCharacter.UnicodeBlock KanaExtendedB { get; }
+            public static UCharacter.UnicodeBlock LatinExtendedF { get; }
+            public static UCharacter.UnicodeBlock LatinExtendedG { get; }
+            public static UCharacter.UnicodeBlock OldUyghur { get; }
+            public static UCharacter.UnicodeBlock Tangsa { get; }
+            public static UCharacter.UnicodeBlock Toto { get; }
+            public static UCharacter.UnicodeBlock UnifiedCanadianAboriginalSyllabicsExtendedA { get; }
+            public static UCharacter.UnicodeBlock Vithkuqi { get; }
+            public static UCharacter.UnicodeBlock ZnamennyMusicalNotation { get; }
         }
     }
     public sealed class UScript : Object {
+        public const int CyproMinoan = 193;
+        public const int OldUyghur = 194;
+        public const int Tangsa = 195;
+        public const int Toto = 196;
+        public const int Vithkuqi = 197;
     }
 }

Android.Icu.Number

 namespace Android.Icu.Number {
     public class FormattedNumber : Object, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IFormattedValue, IJavaObject, IJavaPeerable {
+        public virtual MeasureUnit OutputUnit { get; }
-        public virtual Object? AppendTo(Object? appendable);
+        public virtual Object AppendTo(Object appendable);
+        IEnumerator IEnumerable.GetEnumerator();
-        public virtual bool NextPosition(ConstrainedFieldPosition? cfpos);
+        public virtual bool NextPosition(ConstrainedFieldPosition cfpos);
-        public string? SubSequence(int start, int end);
+        public string SubSequence(int start, int end);
-        public virtual ICharSequence? SubSequenceFormatted(int start, int end);
+        public virtual ICharSequence SubSequenceFormatted(int start, int end);
-        IEnumerator IEnumerable.GetEnumerator();
-        public virtual BigDecimal? ToBigDecimal();
+        public virtual BigDecimal ToBigDecimal();
-        public virtual IAttributedCharacterIterator? ToCharacterIterator();
+        public virtual IAttributedCharacterIterator ToCharacterIterator();
     }
     public class FormattedNumberRange : Object, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IFormattedValue, IJavaObject, IJavaPeerable {
+        IEnumerator IEnumerable.GetEnumerator();
-        IEnumerator IEnumerable.GetEnumerator();
     }
     public sealed class NumberFormatter : Object {
         public sealed class UnitWidth : Enum {
+            public static NumberFormatter.UnitWidth Formal { get; }
+            public static NumberFormatter.UnitWidth Variant { get; }
         }
     }
     public abstract class NumberFormatterSettings : Object {
+        public virtual Object Usage(string usage);
     }
 }

Android.Icu.Text

 namespace Android.Icu.Text {
     public abstract class DateFormat : UFormat {
+        public static DateFormat GetInstance(Calendar cal, ULocale locale);
+        public sealed class HourCycle : Enum {
+            public static DateFormat.HourCycle HourCycle11 { get; }
+            public static DateFormat.HourCycle HourCycle12 { get; }
+            public static DateFormat.HourCycle HourCycle23 { get; }
+            public static DateFormat.HourCycle HourCycle24 { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static DateFormat.HourCycle ValueOf(string name);
+            public static DateFormat.HourCycle[]? Values();
+        }
     }
     public class DateIntervalFormat : UFormat {
+        public virtual DisplayContext GetContext(DisplayContext.Type type);
+        public virtual void SetContext(DisplayContext context);
     }
     public class DateTimePatternGenerator : Object, ICloneable, IDisposable, IFreezable, IJavaObject, IJavaPeerable {
+        public virtual DateFormat.HourCycle DefaultHourCycle { get; }
     }
     public class DecimalFormat : NumberFormat {
+        public const int MinimumGroupingDigitsAuto = -2;
+        public const int MinimumGroupingDigitsMin2 = -3;
     }
     public class DecimalFormatSymbols : Object, ICloneable, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public static ULocale[]? GetAvailableULocales();
     }
     public sealed class ListFormatter : Object {
+        public ListFormatter.FormattedList FormatToValue(params Object[]? items);
+        public ListFormatter.FormattedList FormatToValue(ICollection<object>? items);
+        public static ListFormatter GetInstance(ULocale locale, ListFormatter.Type type, ListFormatter.Width width);
+        public static ListFormatter GetInstance(Locale locale, ListFormatter.Type type, ListFormatter.Width width);
+        public sealed class FormattedList : Object, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IFormattedValue, IJavaObject, IJavaPeerable {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public Object? AppendTo(Object? appendable);
+            public char CharAt(int index);
+            public IEnumerator<char> GetEnumerator();
+            public int Length();
+            public bool NextPosition(ConstrainedFieldPosition? cfpos);
+            public string? SubSequence(int start, int end);
+            public ICharSequence? SubSequenceFormatted(int start, int end);
+            IEnumerator IEnumerable.GetEnumerator();
+            public IAttributedCharacterIterator? ToCharacterIterator();
+        }
+        public sealed class Type : Enum {
+            public static ListFormatter.Type And { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public static ListFormatter.Type Or { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static ListFormatter.Type Units { get; }
+            public static ListFormatter.Type ValueOf(string name);
+            public static ListFormatter.Type[]? Values();
+        }
+        public sealed class Width : Enum {
+            public override JniPeerMembers JniPeerMembers { get; }
+            public static ListFormatter.Width Narrow { get; }
+            public static ListFormatter.Width Short { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static ListFormatter.Width Wide { get; }
+            public static ListFormatter.Width ValueOf(string name);
+            public static ListFormatter.Width[]? Values();
+        }
     }
     public class PluralRules : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public virtual string Select(FormattedNumberRange range);
     }
 }

Android.Icu.Util

 namespace Android.Icu.Util {
     public class Currency : MeasureUnit {
+        public const CurrencyNameStyle FormalSymbolName = CurrencyNameStyle.FormalSymbolName;
+        public const CurrencyNameStyle VariantSymbolName = CurrencyNameStyle.VariantSymbolName;
     }
     public enum CurrencyNameStyle {
+        FormalSymbolName = 4,
+        VariantSymbolName = 5,
     }
     public class MeasureUnit : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public static MeasureUnit Candela { get; }
+        public virtual int Dimensionality { get; }
+        public static MeasureUnit Dot { get; }
+        public virtual string Identifier { get; }
+        public static MeasureUnit Lumen { get; }
+        public static MeasureUnit ForIdentifier(string identifier);
+        public virtual MeasureUnit.Complexity GetComplexity();
+        public virtual MeasureUnit Product(MeasureUnit other);
+        public virtual MeasureUnit Reciprocal();
+        public virtual IList<MeasureUnit>? SplitToSingleUnits();
+        public virtual MeasureUnit WithDimensionality(int dimensionality);
+        public sealed class Complexity : Enum {
+            public static MeasureUnit.Complexity Compound { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public static MeasureUnit.Complexity Mixed { get; }
+            public static MeasureUnit.Complexity Single { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static MeasureUnit.Complexity ValueOf(string name);
+            public static MeasureUnit.Complexity[]? Values();
+        }
     }
     public sealed class ULocale : Object, IComparable, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public static ULocale CreateCanonical(ULocale locale);
     }
     public sealed class VersionInfo : Object, IComparable, IDisposable, IJavaObject, IJavaPeerable {
+        public static VersionInfo Unicode140 { get; }
     }
 }

Android.InputMethodServices

 namespace Android.InputMethodServices {
     public class InputMethodService : AbstractInputMethodService {
+        public Window StylusHandwritingWindow { get; }
+        public void FinishStylusHandwriting();
+        public virtual void OnFinishStylusHandwriting();
+        public virtual void OnPrepareStylusHandwriting();
+        public virtual bool OnStartStylusHandwriting();
+        public virtual void OnStylusHandwritingMotionEvent(MotionEvent motionEvent);
     }
 }

Android.Locations

 namespace Android.Locations {
     public sealed class Geocoder : Object {
+        public void GetFromLocation(double latitude, double longitude, int maxResults, Geocoder.IGeocodeListener listener);
+        public Task GetFromLocationAsync(double latitude, double longitude, int maxResults, Geocoder.IGeocodeListener listener);
+        public void GetFromLocationName(string locationName, int maxResults, Geocoder.IGeocodeListener listener);
+        public void GetFromLocationName(string locationName, int maxResults, double lowerLeftLatitude, double lowerLeftLongitude, double upperRightLatitude, double upperRightLongitude, Geocoder.IGeocodeListener listener);
+        public Task GetFromLocationNameAsync(string locationName, int maxResults, Geocoder.IGeocodeListener listener);
+        public Task GetFromLocationNameAsync(string locationName, int maxResults, double lowerLeftLatitude, double lowerLeftLongitude, double upperRightLatitude, double upperRightLongitude, Geocoder.IGeocodeListener listener);
+        public class ErrorEventArgs : EventArgs {
+            public ErrorEventArgs(string errorMessage);
+            public string ErrorMessage { get; }
+        }
+        public class GeocodeEventArgs : EventArgs {
+            public GeocodeEventArgs(IList<Address> addresses);
+            public IList<Address> Addresses { get; }
+        }
+        public interface IGeocodeListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnError(string? errorMessage);
+            void OnGeocode(IList<Address> addresses);
+        }
     }
+    public sealed class GnssAutomaticGainControl : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public long CarrierFrequencyHz { get; }
+        public int ConstellationType { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public double LevelDb { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel parcel, ParcelableWriteFlags flag);
+        public sealed class Builder : Object {
+            public Builder();
+            public Builder(GnssAutomaticGainControl agc);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public GnssAutomaticGainControl Build();
+            public GnssAutomaticGainControl.Builder SetCarrierFrequencyHz(long carrierFrequencyHz);
+            public GnssAutomaticGainControl.Builder SetConstellationType(int constellationType);
+            public GnssAutomaticGainControl.Builder SetLevelDb(double levelDb);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public sealed class GnssMeasurementRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int IntervalMillis { get; }
         public sealed class Builder : Object {
+            public GnssMeasurementRequest.Builder SetIntervalMillis(int value);
         }
     }
     public sealed class GnssMeasurementsEvent : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public ICollection<GnssAutomaticGainControl> GnssAutomaticGainControls { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public Builder(GnssMeasurementsEvent e);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public GnssMeasurementsEvent Build();
+            public GnssMeasurementsEvent.Builder SetClock(GnssClock clock);
+            public GnssMeasurementsEvent.Builder SetGnssAutomaticGainControls(ICollection<GnssAutomaticGainControl> agcs);
+            public GnssMeasurementsEvent.Builder SetMeasurements(ICollection<GnssMeasurement> measurements);
+        }
     }
     public class Location : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
-        public Location(Location l);
+        public Location(Location location);
-        public Location(string provider);
+        public Location(string? provider);
-        public static IParcelableCreator Creator { get; }
+        public static IParcelableCreator? Creator { get; }
+        public virtual long ElapsedRealtimeAgeMillis { get; }
+        public virtual long ElapsedRealtimeMillis { get; }
-        public virtual Bundle Extras { get; set; }
+        public virtual Bundle? Extras { get; set; }
+        public virtual bool IsComplete { get; }
-        public virtual string Provider { get; set; }
+        public virtual string? Provider { get; set; }
-        public static void DistanceBetween(double startLatitude, double startLongitude, double endLatitude, double endLongitude, float[] results);
+        public static void DistanceBetween(double startLatitude, double startLongitude, double endLatitude, double endLongitude, float[]? results);
-        public virtual void Dump(IPrinter pw, string prefix);
+        public virtual void Dump(IPrinter pw, string? prefix);
+        public virtual long GetElapsedRealtimeAgeMillis(long referenceRealtimeMs);
+        public virtual void RemoveBearingAccuracy();
+        public virtual void RemoveElapsedRealtimeUncertaintyNanos();
+        public virtual void RemoveSpeedAccuracy();
+        public virtual void RemoveVerticalAccuracy();
-        public virtual void Set(Location l);
+        public virtual void Set(Location location);
     }
 }

Android.Media

 namespace Android.Media {
-    public class AudioDescriptor : Object {
+    public class AudioDescriptor : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public virtual int DescribeContents();
+        public virtual void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
     }
     public sealed class AudioDeviceInfo : Object {
+        public const AudioDeviceType TypeBleBroadcast = AudioDeviceType.BleBroadcast;
     }
     public enum AudioDeviceType {
+        BleBroadcast = 30,
     }
     public class AudioManager : Object {
+        public const DirectPlaybackSupport DirectPlaybackBitstreamSupported = DirectPlaybackSupport.BitstreamSupported;
+        public const DirectPlaybackSupport DirectPlaybackNotSupported = DirectPlaybackSupport.NotSupported;
+        public const DirectPlaybackSupport DirectPlaybackOffloadGaplessSupported = DirectPlaybackSupport.OffloadGaplessSupported;
+        public const DirectPlaybackSupport DirectPlaybackOffloadSupported = DirectPlaybackSupport.OffloadSupported;
+        public const Mode ModeCallRedirect = Mode.CallRedirect;
+        public const Mode ModeCommunicationRedirect = Mode.CommunicationRedirect;
+        public virtual bool IsRampingRingerEnabled { get; }
+        public virtual IList<AudioDeviceInfo> GetAudioDevicesForAttributes(AudioAttributes attributes);
+        public static int GetDirectPlaybackSupport(AudioFormat format, AudioAttributes attributes);
+        public virtual IList<AudioProfile> GetDirectProfilesForAttributes(AudioAttributes attributes);
     }
-    public class AudioProfile : Object {
+    public class AudioProfile : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public virtual int DescribeContents();
+        public virtual void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
     }
+    public enum DirectPlaybackSupport {
+        BitstreamSupported = 4,
+        NotSupported = 0,
+        OffloadGaplessSupported = 3,
+        OffloadSupported = 1,
+    }
     public sealed class EncoderProfiles : Object {
         public sealed class VideoProfile : Object {
+            public const VideoProfileHdr HdrDolbyVision = VideoProfileHdr.DolbyVision;
+            public const VideoProfileHdr HdrHdr10 = VideoProfileHdr.Hdr10;
+            public const VideoProfileHdr HdrHdr10plus = VideoProfileHdr.Hdr10plus;
+            public const VideoProfileHdr HdrHlg = VideoProfileHdr.Hlg;
+            public const VideoProfileHdr HdrNone = VideoProfileHdr.None;
+            public const VideoProfileYuv Yuv420 = VideoProfileYuv.Yuv420;
+            public const VideoProfileYuv Yuv422 = VideoProfileYuv.Yuv422;
+            public const VideoProfileYuv Yuv444 = VideoProfileYuv.Yuv444;
+            public int BitDepth { get; }
+            public int ChromaSubsampling { get; }
+            public int HdrFormat { get; }
         }
     }
     public abstract class Image : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual int DataSpace { get; set; }
+        public virtual SyncFence Fence { get; set; }
     }
     public class ImageReader : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual int DataSpace { get; }
+        public virtual int HardwareBufferFormat { get; }
+        public virtual long Usage { get; }
+        public sealed class Builder : Object {
+            public Builder(int width, int height);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ImageReader Build();
+            public ImageReader.Builder SetDefaultDataSpace(int dataSpace);
+            public ImageReader.Builder SetDefaultHardwareBufferFormat(int hardwareBufferFormat);
+            public ImageReader.Builder SetImageFormat(int imageFormat);
+            public ImageReader.Builder SetMaxImages(int maxImages);
+            public ImageReader.Builder SetUsage(long usage);
+        }
     }
     public class ImageWriter : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual int DataSpace { get; }
+        public virtual int HardwareBufferFormat { get; }
+        public virtual int Height { get; }
+        public virtual long Usage { get; }
+        public virtual int Width { get; }
+        public sealed class Builder : Object {
+            public Builder(Surface surface);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ImageWriter Build();
+            public ImageWriter.Builder SetDataSpace(int dataSpace);
+            public ImageWriter.Builder SetHardwareBufferFormat(int hardwareBufferFormat);
+            public ImageWriter.Builder SetImageFormat(int imageFormat);
+            public ImageWriter.Builder SetMaxImages(int maxImages);
+            public ImageWriter.Builder SetUsage(long usage);
+            public ImageWriter.Builder SetWidthAndHeight(int width, int height);
+        }
     }
     public class MediaActionSound : Object {
+        public static bool MustPlayShutterSound();
     }
     public enum MediaCodecCapabilities {
+        Format32bitabgr2101010 = 2130750114,
+        Format64bitabgrfloat = 2130710294,
+        Formatyuvp010 = 54,
     }
     public sealed class MediaCodecInfo : Object {
         public sealed class CodecCapabilities : Object {
+            public const MediaCodecCapabilities COLORFormat32bitABGR2101010 = MediaCodecCapabilities.Format32bitabgr2101010;
+            public const MediaCodecCapabilities COLORFormat64bitABGRFloat = MediaCodecCapabilities.Format64bitabgrfloat;
+            public const MediaCodecCapabilities COLORFormatYUVP010 = MediaCodecCapabilities.Formatyuvp010;
+            public const string FEATUREEncodingStatistics = "encoding-statistics";
+            public const string FEATUREHdrEditing = "hdr-editing";
-            public MediaCodecInfo.AudioCapabilities AudioCapabilities { get; }
+            public MediaCodecInfo.AudioCapabilities? AudioCapabilities { get; }
-            public IList<int> ColorFormats { get; set; }
+            public IList<int>? ColorFormats { get; set; }
-            public MediaFormat DefaultFormat { get; }
+            public MediaFormat? DefaultFormat { get; }
-            public MediaCodecInfo.EncoderCapabilities EncoderCapabilities { get; }
+            public MediaCodecInfo.EncoderCapabilities? EncoderCapabilities { get; }
-            public string MimeType { get; }
+            public string? MimeType { get; }
-            public MediaCodecInfo.VideoCapabilities VideoCapabilities { get; }
+            public MediaCodecInfo.VideoCapabilities? VideoCapabilities { get; }
-            public static MediaCodecInfo.CodecCapabilities CreateFromProfileLevel(string mime, MediaCodecProfileLevel profile, int level);
+            public static MediaCodecInfo.CodecCapabilities? CreateFromProfileLevel(string? mime, MediaCodecProfileLevel profile, int level);
-            public bool IsFeatureRequired(string name);
+            public bool IsFeatureRequired(string? name);
-            public bool IsFeatureSupported(string name);
+            public bool IsFeatureSupported(string? name);
-            public bool IsFormatSupported(MediaFormat format);
+            public bool IsFormatSupported(MediaFormat? format);
         }
         public sealed class CodecProfileLevel : Object {
+            public const MediaCodecProfileLevel DolbyVisionLevel8k30 = MediaCodecProfileLevel.Av1level42;
+            public const MediaCodecProfileLevel DolbyVisionLevel8k60 = MediaCodecProfileLevel.Av1level43;
+            public const MediaCodecProfileLevel DolbyVisionLevelUhd120 = MediaCodecProfileLevel.Av1level41;
         }
     }
     public enum MediaCodecProfileLevel {
+        Dolbyvisionlevel8k30 = 1024,
+        Dolbyvisionlevel8k60 = 2048,
+        Dolbyvisionleveluhd120 = 512,
     }
     public sealed class MediaFormat : Object {
+        public const PictureType PictureTypeB = PictureType.B;
+        public const PictureType PictureTypeI = PictureType.I;
+        public const PictureType PictureTypeP = PictureType.P;
+        public const PictureType PictureTypeUnknown = PictureType.Unknown;
+        public const VideoEncodingStatisticsLevel VideoEncodingStatisticsLevel1 = VideoEncodingStatisticsLevel.One;
+        public const VideoEncodingStatisticsLevel VideoEncodingStatisticsLevelNone = VideoEncodingStatisticsLevel.None;
+        public const string KeyCropBottom = "crop-bottom";
+        public const string KeyCropLeft = "crop-left";
+        public const string KeyCropRight = "crop-right";
+        public const string KeyCropTop = "crop-top";
+        public const string KeyPictureType = "picture-type";
+        public const string KeyVideoEncodingStatisticsLevel = "video-encoding-statistics-level";
+        public const string KeyVideoQpAverage = "video-qp-average";
+        public const string MimetypeAudioAacEld = "audio/mp4a.40.39";
+        public const string MimetypeAudioAacHeV1 = "audio/mp4a.40.05";
+        public const string MimetypeAudioAacHeV2 = "audio/mp4a.40.29";
+        public const string MimetypeAudioAacLc = "audio/mp4a.40.02";
+        public const string MimetypeAudioAacXhe = "audio/mp4a.40.42";
+        public const string MimetypeAudioDolbyMat = "audio/vnd.dolby.mat";
+        public const string MimetypeAudioDolbyTruehd = "audio/vnd.dolby.mlp";
+        public const string MimetypeAudioDra = "audio/vnd.dra";
+        public const string MimetypeAudioDts = "audio/vnd.dts";
+        public const string MimetypeAudioDtsHd = "audio/vnd.dts.hd";
+        public const string MimetypeAudioDtsUhd = "audio/vnd.dts.uhd";
+        public const string MimetypeAudioIec61937 = "audio/x-iec61937";
+        public const string MimetypeAudioMpeghBlL3 = "audio/mhm1.03";
+        public const string MimetypeAudioMpeghBlL4 = "audio/mhm1.04";
+        public const string MimetypeAudioMpeghLcL3 = "audio/mhm1.0d";
+        public const string MimetypeAudioMpeghLcL4 = "audio/mhm1.0e";
     }
     public class MediaRecorder : Object, IAudioRecordingMonitor, IAudioRouting, IDisposable, IJavaObject, IJavaPeerable, IMicrophoneDirection {
         public sealed class VideoEncoder : Object {
+            public const VideoEncoder Av1 = VideoEncoder.Av1;
+            public const VideoEncoder DolbyVision = VideoEncoder.DolbyVision;
+            public const VideoEncoder Vp9 = VideoEncoder.Vp9;
         }
     }
     public enum Mode {
+        CallRedirect = 5,
+        CommunicationRedirect = 6,
     }
+    public enum PictureType {
+        B = 3,
+        I = 1,
+        P = 2,
+        Unknown = 0,
+    }
     public class RingtoneManager : Object {
+        public static bool HasHapticChannels(Context context, Uri ringtoneUri);
     }
     public class Spatializer : Object {
+        public virtual bool IsHeadTrackerAvailable { get; }
+        public virtual void AddOnHeadTrackerAvailableListener(IExecutor executor, Spatializer.IOnHeadTrackerAvailableListener listener);
+        public virtual void RemoveOnHeadTrackerAvailableListener(Spatializer.IOnHeadTrackerAvailableListener listener);
+        public class HeadTrackerAvailableEventArgs : EventArgs {
+            public HeadTrackerAvailableEventArgs(Spatializer spatializer, bool available);
+            public bool Available { get; }
+            public Spatializer Spatializer { get; }
+        }
+        public interface IOnHeadTrackerAvailableListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnHeadTrackerAvailableChanged(Spatializer spatializer, bool available);
+        }
     }
     public enum VideoEncoder {
+        Av1 = 8,
+        DolbyVision = 7,
+        Vp9 = 6,
     }
+    public enum VideoEncodingStatisticsLevel {
+        None = 0,
+        One = 1,
+    }
+    public enum VideoProfileHdr {
+        DolbyVision = 4,
+        Hdr10 = 2,
+        Hdr10plus = 3,
+        Hlg = 1,
+        None = 0,
+    }
+    public enum VideoProfileYuv {
+        Yuv420 = 0,
+        Yuv422 = 1,
+        Yuv444 = 2,
+    }
 }

Android.Media.Metrics

 namespace Android.Media.Metrics {
+    public sealed class BundleSession : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public const string KeyStatsdAtom = "bundlesession-statsd-atom";
+        public override JniPeerMembers JniPeerMembers { get; }
+        public LogSessionId SessionId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void Close();
+        public void ReportBundleMetrics(PersistableBundle metrics);
+    }
+    public sealed class EditingSession : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public LogSessionId SessionId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void Close();
+    }
     public sealed class MediaMetricsManager : Object {
+        public BundleSession CreateBundleSession();
+        public EditingSession CreateEditingSession();
+        public TranscodingSession CreateTranscodingSession();
+        public void ReleaseSessionId(string sessionId);
     }
+    public sealed class TranscodingSession : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public LogSessionId SessionId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void Close();
+    }
 }

Android.Media.Midi

 namespace Android.Media.Midi {
     public sealed class MidiDeviceInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const MidiDeviceProtocol ProtocolUmpMidi10UpTo128Bits = MidiDeviceProtocol.UmpMidi10UpTo128Bits;
+        public const MidiDeviceProtocol ProtocolUmpMidi10UpTo128BitsAndJrts = MidiDeviceProtocol.UmpMidi10UpTo128BitsAndJrts;
+        public const MidiDeviceProtocol ProtocolUmpMidi10UpTo64Bits = MidiDeviceProtocol.UmpMidi10UpTo64Bits;
+        public const MidiDeviceProtocol ProtocolUmpMidi10UpTo64BitsAndJrts = MidiDeviceProtocol.UmpMidi10UpTo64BitsAndJrts;
+        public const MidiDeviceProtocol ProtocolUmpMidi20 = MidiDeviceProtocol.UmpMidi20;
+        public const MidiDeviceProtocol ProtocolUmpMidi20AndJrts = MidiDeviceProtocol.UmpMidi20AndJrts;
+        public const MidiDeviceProtocol ProtocolUmpUseMidiCi = MidiDeviceProtocol.UmpUseMidiCi;
+        public const MidiDeviceProtocol ProtocolUnknown = MidiDeviceProtocol.Unknown;
+        public int DefaultProtocol { get; }
     }
+    public enum MidiDeviceProtocol {
+        UmpMidi10UpTo128Bits = 3,
+        UmpMidi10UpTo128BitsAndJrts = 4,
+        UmpMidi10UpTo64Bits = 1,
+        UmpMidi10UpTo64BitsAndJrts = 2,
+        UmpMidi20 = 17,
+        UmpMidi20AndJrts = 18,
+        UmpUseMidiCi = 0,
+        Unknown = -1,
+    }
     public sealed class MidiManager : Object {
+        public const MidiTransport TransportMidiByteStream = MidiTransport.MidiByteStream;
+        public const MidiTransport TransportUniversalMidiPackets = MidiTransport.UniversalMidiPackets;
+        public ICollection<MidiDeviceInfo> GetDevicesForTransport(int transport);
+        public void RegisterDeviceCallback(int transport, IExecutor executor, MidiManager.DeviceCallback callback);
     }
+    public enum MidiTransport {
+        MidiByteStream = 1,
+        UniversalMidiPackets = 2,
+    }
 }

Android.Media.Session

 namespace Android.Media.Session {
     public sealed class MediaSessionManager : Object {
+        public MediaSession.Token? MediaKeyEventSession { get; }
+        public string MediaKeyEventSessionPackageName { get; }
+        public void AddOnMediaKeyEventSessionChangedListener(IExecutor executor, MediaSessionManager.IOnMediaKeyEventSessionChangedListener listener);
+        public void RemoveOnMediaKeyEventSessionChangedListener(MediaSessionManager.IOnMediaKeyEventSessionChangedListener listener);
+        public interface IOnMediaKeyEventSessionChangedListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnMediaKeyEventSessionChanged(string packageName, MediaSession.Token? sessionToken);
+        }
+        public class MediaKeyEventSessionChangedEventArgs : EventArgs {
+            public MediaKeyEventSessionChangedEventArgs(string packageName, MediaSession.Token? sessionToken);
+            public string PackageName { get; }
+            public MediaSession.Token? SessionToken { get; }
+        }
     }
 }

Android.Media.TV

 namespace Android.Media.TV {
+    public sealed class AdRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const AdRequestType RequestTypeStart = AdRequestType.Start;
+        public const AdRequestType RequestTypeStop = AdRequestType.Stop;
+        public AdRequest(int id, int requestType, ParcelFileDescriptor? fileDescriptor, long startTime, long stopTime, long echoInterval, string? mediaFileType, Bundle metadata);
+        public static IParcelableCreator Creator { get; }
+        public long EchoIntervalMillis { get; }
+        public ParcelFileDescriptor? FileDescriptor { get; }
+        public int Id { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string? MediaFileType { get; }
+        public Bundle Metadata { get; }
+        public int RequestType { get; }
+        public long StartTimeMillis { get; }
+        public long StopTimeMillis { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum AdRequestType {
+        Start = 1,
+        Stop = 2,
+    }
+    public sealed class AdResponse : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const AdResponseType ResponseTypeError = AdResponseType.Error;
+        public const AdResponseType ResponseTypeFinished = AdResponseType.Finished;
+        public const AdResponseType ResponseTypePlaying = AdResponseType.Playing;
+        public const AdResponseType ResponseTypeStopped = AdResponseType.Stopped;
+        public AdResponse(int id, int responseType, long elapsedTime);
+        public static IParcelableCreator Creator { get; }
+        public long ElapsedTimeMillis { get; }
+        public int Id { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int ResponseType { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum AdResponseType {
+        Error = 4,
+        Finished = 2,
+        Playing = 1,
+        Stopped = 3,
+    }
+    public sealed class AitInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public AitInfo(int type, int version);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int Type { get; }
+        public int Version { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public abstract class BroadcastInfoRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const BroadcastInfoRequestOption RequestOptionAutoUpdate = BroadcastInfoRequestOption.AutoUpdate;
+        public const BroadcastInfoRequestOption RequestOptionRepeat = BroadcastInfoRequestOption.Repeat;
+        protected BroadcastInfoRequest(IntPtr javaReference, JniHandleOwnership transfer);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual int Option { get; }
+        public virtual int RequestId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual int Type { get; }
+        public virtual int DescribeContents();
+        public virtual void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum BroadcastInfoRequestOption {
+        AutoUpdate = 1,
+        Repeat = 0,
+    }
+    public abstract class BroadcastInfoResponse : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const BroadcastInfoResponseResult ResponseResultCancel = BroadcastInfoResponseResult.Cancel;
+        public const BroadcastInfoResponseResult ResponseResultError = BroadcastInfoResponseResult.Error;
+        public const BroadcastInfoResponseResult ResponseResultOk = BroadcastInfoResponseResult.Ok;
+        protected BroadcastInfoResponse(IntPtr javaReference, JniHandleOwnership transfer);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual int RequestId { get; }
+        public virtual int ResponseResult { get; }
+        public virtual int Sequence { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual int Type { get; }
+        public virtual int DescribeContents();
+        public virtual void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum BroadcastInfoResponseResult {
+        Cancel = 3,
+        Error = 1,
+        Ok = 2,
+    }
+    public enum BroadcastInfoType {
+        Command = 7,
+        Dsmcc = 6,
+        Pes = 4,
+        Section = 3,
+        StreamEvent = 5,
+        Table = 2,
+        Timeline = 8,
+        Ts = 1,
+    }
+    public sealed class CommandRequest : BroadcastInfoRequest, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string ArgumentTypeJson = "json";
+        public const string ArgumentTypeXml = "xml";
+        public CommandRequest(int requestId, int option, string @namespace, string name, string arguments, string argumentType);
+        public string Arguments { get; }
+        public string ArgumentType { get; }
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Name { get; }
+        public string Namespace { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class CommandResponse : BroadcastInfoResponse, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string ResponseTypeJson = "json";
+        public const string ResponseTypeXml = "xml";
+        public CommandResponse(int requestId, int sequence, int responseResult, string? response, string responseType);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string? Response { get; }
+        public string ResponseType { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class DsmccRequest : BroadcastInfoRequest, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public DsmccRequest(int requestId, int option, Uri uri);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public Uri Uri { get; }
+    }
+    public sealed class DsmccResponse : BroadcastInfoResponse, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string BiopMessageTypeDirectory = "directory";
+        public const string BiopMessageTypeFile = "file";
+        public const string BiopMessageTypeServiceGateway = "service_gateway";
+        public const string BiopMessageTypeStream = "stream";
+        public DsmccResponse(int requestId, int sequence, int responseResult, ParcelFileDescriptor? file);
+        public DsmccResponse(int requestId, int sequence, int responseResult, bool isServiceGateway, IList<string>? childList);
+        public DsmccResponse(int requestId, int sequence, int responseResult, int[]? eventIds, string[]? eventNames);
+        public string BiopMessageType { get; }
+        public IList<string> ChildList { get; }
+        public static new IParcelableCreator Creator { get; }
+        public ParcelFileDescriptor File { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int[] GetStreamEventIds();
+        public string[] GetStreamEventNames();
+    }
+    public sealed class PesRequest : BroadcastInfoRequest, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public PesRequest(int requestId, int option, int tsPid, int streamId);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int StreamId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int TsPid { get; }
+    }
+    public sealed class PesResponse : BroadcastInfoResponse, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public PesResponse(int requestId, int sequence, int responseResult, string? sharedFilterToken);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string? SharedFilterToken { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class SectionRequest : BroadcastInfoRequest, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public SectionRequest(int requestId, int option, int tsPid, int tableId, int version);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int TableId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int TsPid { get; }
+        public int Version { get; }
+    }
+    public sealed class SectionResponse : BroadcastInfoResponse, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public SectionResponse(int requestId, int sequence, int responseResult, int sessionId, int version, Bundle? sessionData);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public Bundle SessionData { get; }
+        public int SessionId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int Version { get; }
+    }
+    public enum SignalStrength {
+        Lost = 1,
+        Strong = 3,
+        Weak = 2,
+    }
+    public sealed class StreamEventRequest : BroadcastInfoRequest, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public StreamEventRequest(int requestId, int option, Uri targetUri, string eventName);
+        public static new IParcelableCreator Creator { get; }
+        public string EventName { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public Uri TargetUri { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class StreamEventResponse : BroadcastInfoResponse, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public StreamEventResponse(int requestId, int sequence, int responseResult, int eventId, long nptMillis, byte[]? data);
+        public static new IParcelableCreator Creator { get; }
+        public int EventId { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public long NptMillis { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public byte[]? GetData();
+    }
+    public enum TableName {
+        Pat = 0,
+        Pmt = 1,
+    }
+    public sealed class TableRequest : BroadcastInfoRequest, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const TableName TableNamePat = TableName.Pat;
+        public const TableName TableNamePmt = TableName.Pmt;
+        public TableRequest(int requestId, int option, int tableId, int tableName, int version);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int TableId { get; }
+        public int TableName { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int Version { get; }
+    }
+    public sealed class TableResponse : BroadcastInfoResponse, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public TableResponse(int requestId, int sequence, int responseResult, Uri? tableUri, int version, int size);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int Size { get; }
+        public Uri? TableUri { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int Version { get; }
+    }
+    public sealed class TimelineRequest : BroadcastInfoRequest, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public TimelineRequest(int requestId, int option, int intervalMillis);
+        public static new IParcelableCreator Creator { get; }
+        public int IntervalMillis { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class TimelineResponse : BroadcastInfoResponse, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public TimelineResponse(int requestId, int sequence, int responseResult, string? selector, int unitsPerTick, int unitsPerSecond, long wallClock, long ticks);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public Uri? Selector { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public long Ticks { get; }
+        public int UnitsPerSecond { get; }
+        public int UnitsPerTick { get; }
+        public long WallClock { get; }
+    }
+    public sealed class TsRequest : BroadcastInfoRequest, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public TsRequest(int requestId, int option, int tsPid);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int TsPid { get; }
+    }
+    public sealed class TsResponse : BroadcastInfoResponse, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public TsResponse(int requestId, int sequence, int responseResult, string? sharedFilterToken);
+        public static new IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string? SharedFilterToken { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
     public sealed class TvContract : Object {
         public sealed class PreviewPrograms : Object {
+            public const string ColumnEndTimeUtcMillis = "end_time_utc_millis";
+            public const string ColumnStartTimeUtcMillis = "start_time_utc_millis";
         }
         public sealed class Programs : Object {
+            public const string ColumnInternalProviderId = "internal_provider_id";
+            public const string ColumnMultiSeriesId = "multi_series_id";
+            public const string ColumnScrambled = "scrambled";
         }
         public sealed class RecordedPrograms : Object {
+            public const string ColumnInternalProviderId = "internal_provider_id";
+            public const string ColumnMultiSeriesId = "multi_series_id";
         }
         public sealed class WatchNextPrograms : Object {
+            public const string ColumnEndTimeUtcMillis = "end_time_utc_millis";
+            public const string ColumnStartTimeUtcMillis = "start_time_utc_millis";
         }
     }
     public sealed class TvInputManager : Object {
+        public const BroadcastInfoType BroadcastInfoStreamEvent = BroadcastInfoType.StreamEvent;
+        public const BroadcastInfoType BroadcastInfoTypeCommand = BroadcastInfoType.Command;
+        public const BroadcastInfoType BroadcastInfoTypeDsmcc = BroadcastInfoType.Dsmcc;
+        public const BroadcastInfoType BroadcastInfoTypePes = BroadcastInfoType.Pes;
+        public const BroadcastInfoType BroadcastInfoTypeSection = BroadcastInfoType.Section;
+        public const BroadcastInfoType BroadcastInfoTypeTable = BroadcastInfoType.Table;
+        public const BroadcastInfoType BroadcastInfoTypeTimeline = BroadcastInfoType.Timeline;
+        public const BroadcastInfoType BroadcastInfoTypeTs = BroadcastInfoType.Ts;
+        public const SignalStrength SignalStrengthLost = SignalStrength.Lost;
+        public const SignalStrength SignalStrengthStrong = SignalStrength.Strong;
+        public const SignalStrength SignalStrengthWeak = SignalStrength.Weak;
     }
     public abstract class TvInputService : Service {
         public abstract class Session : Object, IDisposable, IJavaObject, IJavaPeerable, KeyEvent.ICallback {
+            public virtual void NotifyAdResponse(AdResponse response);
+            public virtual void NotifyAitInfoUpdated(AitInfo aitInfo);
+            public virtual void NotifyBroadcastInfoResponse(BroadcastInfoResponse response);
+            public virtual void NotifySignalStrength(int strength);
+            public virtual void NotifyTuned(Uri channelUri);
+            public virtual void OnRemoveBroadcastInfo(int requestId);
+            public virtual void OnRequestAd(AdRequest request);
+            public virtual void OnRequestBroadcastInfo(BroadcastInfoRequest request);
+            public virtual void OnSetInteractiveAppNotificationEnabled(bool enabled);
         }
     }
     public class TvView : ViewGroup {
+        public virtual void SetInteractiveAppNotificationEnabled(bool enabled);
         public abstract class TvInputCallback : Object {
+            public virtual void OnAitInfoUpdated(string inputId, AitInfo aitInfo);
+            public virtual void OnSignalStrengthUpdated(string inputId, int strength);
+            public virtual void OnTuned(string inputId, Uri channelUri);
         }
     }
 }

Android.Media.TV.Interactive

+namespace Android.Media.TV.Interactive {
+    public sealed class AppLinkInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public AppLinkInfo(string packageName, string className, string uriString);
+        public ComponentName ComponentName { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public Uri Uri { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum AppManagerError {
+        Blocked = 5,
+        Encrypted = 6,
+        None = 0,
+        NotSupported = 2,
+        ResourceUnavailable = 4,
+        Unknown = 1,
+        UnknownChannel = 7,
+        WeakSignal = 3,
+    }
+    public enum InteractiveAppState {
+        Error = 3,
+        Running = 2,
+        Stopped = 1,
+    }
+    public enum InteractiveAppType {
+        Atsc = 2,
+        Ginga = 4,
+        Hbbtv = 1,
+    }
+    public enum ServiceState {
+        Error = 4,
+        Preparing = 2,
+        Ready = 3,
+        Unrealized = 1,
+    }
+    public enum TeletextAppState {
+        Error = 3,
+        Hide = 2,
+        Show = 1,
+    }
+    public sealed class TvInteractiveAppManager : Object {
+        public const AppManagerError ErrorBlocked = AppManagerError.Blocked;
+        public const AppManagerError ErrorEncrypted = AppManagerError.Encrypted;
+        public const AppManagerError ErrorNone = AppManagerError.None;
+        public const AppManagerError ErrorNotSupported = AppManagerError.NotSupported;
+        public const AppManagerError ErrorResourceUnavailable = AppManagerError.ResourceUnavailable;
+        public const AppManagerError ErrorUnknown = AppManagerError.Unknown;
+        public const AppManagerError ErrorUnknownChannel = AppManagerError.UnknownChannel;
+        public const AppManagerError ErrorWeakSignal = AppManagerError.WeakSignal;
+        public const InteractiveAppState InteractiveAppStateError = InteractiveAppState.Error;
+        public const InteractiveAppState InteractiveAppStateRunning = InteractiveAppState.Running;
+        public const InteractiveAppState InteractiveAppStateStopped = InteractiveAppState.Stopped;
+        public const ServiceState ServiceStateError = ServiceState.Error;
+        public const ServiceState ServiceStatePreparing = ServiceState.Preparing;
+        public const ServiceState ServiceStateReady = ServiceState.Ready;
+        public const ServiceState ServiceStateUnrealized = ServiceState.Unrealized;
+        public const TeletextAppState TeletextAppStateError = TeletextAppState.Error;
+        public const TeletextAppState TeletextAppStateHide = TeletextAppState.Hide;
+        public const TeletextAppState TeletextAppStateShow = TeletextAppState.Show;
+        public const string ActionAppLinkCommand = "android.media.tv.interactive.action.APP_LINK_COMMAND";
+        public const string AppLinkKeyBackUri = "back_uri";
+        public const string AppLinkKeyClassName = "class_name";
+        public const string AppLinkKeyCommandType = "command_type";
+        public const string AppLinkKeyPackageName = "package_name";
+        public const string AppLinkKeyServiceId = "service_id";
+        public const string IntentKeyBiInteractiveAppType = "bi_interactive_app_type";
+        public const string IntentKeyBiInteractiveAppUri = "bi_interactive_app_uri";
+        public const string IntentKeyChannelUri = "channel_uri";
+        public const string IntentKeyCommandType = "command_type";
+        public const string IntentKeyInteractiveAppServiceId = "interactive_app_id";
+        public const string IntentKeyTvInputId = "tv_input_id";
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public IList<TvInteractiveAppServiceInfo> TvInteractiveAppServiceList { get; }
+        public void RegisterAppLinkInfo(string tvIAppServiceId, AppLinkInfo appLinkInfo);
+        public void RegisterCallback(IExecutor executor, TvInteractiveAppManager.TvInteractiveAppCallback callback);
+        public void SendAppLinkCommand(string tvIAppServiceId, Bundle command);
+        public void UnregisterAppLinkInfo(string tvIAppServiceId, AppLinkInfo appLinkInfo);
+        public void UnregisterCallback(TvInteractiveAppManager.TvInteractiveAppCallback callback);
+        public abstract class TvInteractiveAppCallback : Object {
+            public TvInteractiveAppCallback();
+            protected TvInteractiveAppCallback(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual void OnInteractiveAppServiceAdded(string iAppServiceId);
+            public virtual void OnInteractiveAppServiceRemoved(string iAppServiceId);
+            public virtual void OnInteractiveAppServiceUpdated(string iAppServiceId);
+            public virtual void OnTvInteractiveAppServiceStateChanged(string iAppServiceId, int type, int state, int err);
+        }
+    }
+    public abstract class TvInteractiveAppService : Service {
+        public const string CommandParameterKeyChangeChannelQuietly = "command_change_channel_quietly";
+        public const string CommandParameterKeyChannelUri = "command_channel_uri";
+        public const string CommandParameterKeyInputId = "command_input_id";
+        public const string CommandParameterKeyTrackId = "command_track_id";
+        public const string CommandParameterKeyTrackType = "command_track_type";
+        public const string CommandParameterKeyVolume = "command_volume";
+        public const string PlaybackCommandTypeSelectTrack = "select_track";
+        public const string PlaybackCommandTypeSetStreamVolume = "set_stream_volume";
+        public const string PlaybackCommandTypeStop = "stop";
+        public const string PlaybackCommandTypeTune = "tune";
+        public const string PlaybackCommandTypeTuneNext = "tune_next";
+        public const string PlaybackCommandTypeTunePrev = "tune_previous";
+        public const string ServiceInterface = "android.media.tv.interactive.TvInteractiveAppService";
+        public const string ServiceMetaData = "android.media.tv.interactive.app";
+        public TvInteractiveAppService();
+        protected TvInteractiveAppService(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void NotifyStateChanged(int type, int state, int error);
+        public virtual void OnAppLinkCommand(Bundle command);
+        public sealed override IBinder? OnBind(Intent intent);
+        public abstract TvInteractiveAppService.Session? OnCreateSession(string iAppServiceId, int type);
+        public virtual void OnRegisterAppLinkInfo(AppLinkInfo appLinkInfo);
+        public virtual void OnUnregisterAppLinkInfo(AppLinkInfo appLinkInfo);
+        public abstract class Session : Object, IDisposable, IJavaObject, IJavaPeerable, KeyEvent.ICallback {
+            public Session(Context context);
+            protected Session(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual bool MediaViewEnabled { get; set; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual void LayoutSurface(int left, int top, int right, int bottom);
+            public void NotifyBiInteractiveAppCreated(Uri biIAppUri, string? biIAppId);
+            public virtual void NotifySessionStateChanged(int state, int err);
+            public void NotifyTeletextAppStateChanged(int state);
+            public virtual void OnAdResponse(AdResponse response);
+            public virtual void OnBroadcastInfoResponse(BroadcastInfoResponse response);
+            public virtual void OnContentAllowed();
+            public virtual void OnContentBlocked(TvContentRating rating);
+            public virtual void OnCreateBiInteractiveAppRequest(Uri biIAppUri, Bundle? @params);
+            public virtual View? OnCreateMediaView();
+            public virtual void OnCurrentChannelLcn(int lcn);
+            public virtual void OnCurrentChannelUri(Uri? channelUri);
+            public virtual void OnCurrentTvInputId(string? inputId);
+            public virtual void OnDestroyBiInteractiveAppRequest(string biIAppId);
+            public virtual void OnError(string errMsg, Bundle @params);
+            public virtual bool OnGenericMotionEvent(MotionEvent e);
+            public virtual bool OnKeyDown(Keycode keyCode, KeyEvent e);
+            public virtual bool OnKeyLongPress(Keycode keyCode, KeyEvent e);
+            public virtual bool OnKeyMultiple(Keycode keyCode, int count, KeyEvent e);
+            public virtual bool OnKeyUp(Keycode keyCode, KeyEvent e);
+            public virtual void OnMediaViewSizeChanged(int width, int height);
+            public abstract void OnRelease();
+            public virtual void OnResetInteractiveApp();
+            public abstract bool OnSetSurface(Surface? surface);
+            public virtual void OnSetTeletextAppEnabled(bool enable);
+            public virtual void OnSignalStrength(int strength);
+            public virtual void OnSigningResult(string signingId, byte[] result);
+            public virtual void OnStartInteractiveApp();
+            public virtual void OnStopInteractiveApp();
+            public virtual void OnStreamVolume(float volume);
+            public virtual void OnSurfaceChanged(int format, int width, int height);
+            public virtual bool OnTouchEvent(MotionEvent e);
+            public virtual bool OnTrackballEvent(MotionEvent e);
+            public virtual void OnTrackInfoList(IList<TvTrackInfo> tracks);
+            public virtual void OnTracksChanged(IList<TvTrackInfo> tracks);
+            public virtual void OnTrackSelected(int type, string trackId);
+            public virtual void OnTuned(Uri channelUri);
+            public virtual void OnVideoAvailable();
+            public virtual void OnVideoUnavailable(int reason);
+            public virtual void RemoveBroadcastInfo(int requestId);
+            public virtual void RequestAd(AdRequest request);
+            public virtual void RequestBroadcastInfo(BroadcastInfoRequest request);
+            public virtual void RequestCurrentChannelLcn();
+            public virtual void RequestCurrentChannelUri();
+            public virtual void RequestCurrentTvInputId();
+            public virtual void RequestSigning(string signingId, string algorithm, string alias, byte[] data);
+            public virtual void RequestStreamVolume();
+            public virtual void RequestTrackInfoList();
+            public virtual void SendPlaybackCommandRequest(string cmdType, Bundle? parameters);
+            public virtual void SetVideoBounds(Rect rect);
+        }
+    }
+    public sealed class TvInteractiveAppServiceInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const InteractiveAppType InteractiveAppTypeAtsc = InteractiveAppType.Atsc;
+        public const InteractiveAppType InteractiveAppTypeGinga = InteractiveAppType.Ginga;
+        public const InteractiveAppType InteractiveAppTypeHbbtv = InteractiveAppType.Hbbtv;
+        public TvInteractiveAppServiceInfo(Context context, ComponentName component);
+        public static IParcelableCreator Creator { get; }
+        public string Id { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public ServiceInfo? ServiceInfo { get; }
+        public int SupportedTypes { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public class TvInteractiveAppView : ViewGroup {
+        public const string BiInteractiveAppKeyAlias = "alias";
+        public const string BiInteractiveAppKeyCertificate = "certificate";
+        public const string BiInteractiveAppKeyHttpAdditionalHeaders = "http_additional_headers";
+        public const string BiInteractiveAppKeyHttpUserAgent = "http_user_agent";
+        public const string BiInteractiveAppKeyPrivateKey = "private_key";
+        public const string ErrorKeyMethodName = "method_name";
+        public TvInteractiveAppView(Context context);
+        public TvInteractiveAppView(Context context, IAttributeSet? attrs);
+        public TvInteractiveAppView(Context context, IAttributeSet? attrs, int defStyleAttr);
+        protected TvInteractiveAppView(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual TvInteractiveAppView.IOnUnhandledInputEventListener? OnUnhandledInputEventListener { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void ClearCallback();
+        public virtual void ClearOnUnhandledInputEventListener();
+        public virtual void CreateBiInteractiveApp(Uri biIAppUri, Bundle? @params);
+        public virtual void DestroyBiInteractiveApp(string biIAppId);
+        public virtual bool DispatchUnhandledInputEvent(InputEvent e);
+        public virtual void NotifyError(string errMsg, Bundle @params);
+        public virtual new void OnAttachedToWindow();
+        public virtual new void OnDetachedFromWindow();
+        protected override void OnLayout(bool changed, int left, int top, int right, int bottom);
+        public virtual new void OnMeasure(int widthMeasureSpec, int heightMeasureSpec);
+        public virtual bool OnUnhandledInputEvent(InputEvent e);
+        public virtual new void OnVisibilityChanged(View changedView, ViewStates visibility);
+        public virtual void PrepareInteractiveApp(string iAppServiceId, int type);
+        public virtual void Reset();
+        public virtual void ResetInteractiveApp();
+        public virtual void SendCurrentChannelLcn(int lcn);
+        public virtual void SendCurrentChannelUri(Uri? channelUri);
+        public virtual void SendCurrentTvInputId(string? inputId);
+        public virtual void SendSigningResult(string signingId, byte[] result);
+        public virtual void SendStreamVolume(float volume);
+        public virtual void SendTrackInfoList(IList<TvTrackInfo>? tracks);
+        public virtual void SetCallback(IExecutor executor, TvInteractiveAppView.TvInteractiveAppCallback callback);
+        public virtual void SetOnUnhandledInputEventListener(IExecutor executor, TvInteractiveAppView.IOnUnhandledInputEventListener listener);
+        public virtual void SetTeletextAppEnabled(bool enable);
+        public virtual int SetTvView(TvView? tvView);
+        public virtual void StartInteractiveApp();
+        public virtual void StopInteractiveApp();
+        public interface IOnUnhandledInputEventListener : IDisposable, IJavaObject, IJavaPeerable {
+            bool OnUnhandledInputEvent(InputEvent e);
+        }
+        public abstract class TvInteractiveAppCallback : Object {
+            public TvInteractiveAppCallback();
+            protected TvInteractiveAppCallback(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual void OnBiInteractiveAppCreated(string iAppServiceId, Uri biIAppUri, string? biIAppId);
+            public virtual void OnPlaybackCommandRequest(string iAppServiceId, string cmdType, Bundle parameters);
+            public virtual void OnRequestCurrentChannelLcn(string iAppServiceId);
+            public virtual void OnRequestCurrentChannelUri(string iAppServiceId);
+            public virtual void OnRequestCurrentTvInputId(string iAppServiceId);
+            public virtual void OnRequestSigning(string iAppServiceId, string signingId, string algorithm, string alias, byte[] data);
+            public virtual void OnRequestStreamVolume(string iAppServiceId);
+            public virtual void OnRequestTrackInfoList(string iAppServiceId);
+            public virtual void OnSetVideoBounds(string iAppServiceId, Rect rect);
+            public virtual void OnStateChanged(string iAppServiceId, int state, int err);
+            public virtual void OnTeletextAppStateChanged(string iAppServiceId, int state);
+        }
+        public class UnhandledInputEventEventArgs : EventArgs {
+            public UnhandledInputEventEventArgs(bool handled, InputEvent e);
+            public InputEvent Event { get; }
+            public bool Handled { get; set; }
+        }
+    }
+}

Android.Net

 namespace Android.Net {
     public sealed class DnsResolver : Object {
         public class DnsException : Exception {
+            public DnsException(int code, Throwable? cause);
         }
     }
+    public sealed class EthernetNetworkSpecifier : NetworkSpecifier, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public EthernetNetworkSpecifier(string interfaceName);
+        public static IParcelableCreator Creator { get; }
+        public string? InterfaceName { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public bool CanBeSatisfiedBy(NetworkSpecifier? other);
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public sealed class Ikev2VpnProfile : PlatformVpnProfile {
+        public IkeTunnelConnectionParams IkeTunnelConnectionParams { get; }
         public sealed class Builder : Object {
+            public Builder(IkeTunnelConnectionParams ikeTunConnParams);
+            public Ikev2VpnProfile.Builder SetLocalRoutesExcluded(bool excludeLocalRoutes);
+            public Ikev2VpnProfile.Builder SetRequiresInternetValidation(bool requiresInternetValidation);
         }
     }
+    public sealed class IpConfiguration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public ProxyInfo? HttpProxy { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public StaticIpConfiguration? StaticIpConfiguration { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public IpConfiguration Build();
+            public IpConfiguration.Builder SetHttpProxy(ProxyInfo? proxyInfo);
+            public IpConfiguration.Builder SetStaticIpConfiguration(StaticIpConfiguration? config);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public sealed class IpPrefix : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public IpPrefix(InetAddress address, int prefixLength);
     }
-    public sealed class IpSecManager : Object {
+    public class IpSecManager : Object {
+        protected IpSecManager(IntPtr javaReference, JniHandleOwnership transfer);
-        public IpSecManager.SecurityParameterIndex AllocateSecurityParameterIndex(InetAddress destinationAddress);
+        public virtual IpSecManager.SecurityParameterIndex AllocateSecurityParameterIndex(InetAddress destinationAddress);
-        public IpSecManager.SecurityParameterIndex AllocateSecurityParameterIndex(InetAddress destinationAddress, int requestedSpi);
+        public virtual IpSecManager.SecurityParameterIndex AllocateSecurityParameterIndex(InetAddress destinationAddress, int requestedSpi);
-        public void ApplyTransportModeTransform(FileDescriptor socket, IpSecTransportDirection direction, IpSecTransform transform);
+        public virtual void ApplyTransportModeTransform(FileDescriptor socket, IpSecTransportDirection direction, IpSecTransform transform);
-        public void ApplyTransportModeTransform(DatagramSocket socket, IpSecTransportDirection direction, IpSecTransform transform);
+        public virtual void ApplyTransportModeTransform(DatagramSocket socket, IpSecTransportDirection direction, IpSecTransform transform);
-        public void ApplyTransportModeTransform(Socket socket, IpSecTransportDirection direction, IpSecTransform transform);
+        public virtual void ApplyTransportModeTransform(Socket socket, IpSecTransportDirection direction, IpSecTransform transform);
-        public IpSecManager.UdpEncapsulationSocket OpenUdpEncapsulationSocket();
+        public virtual IpSecManager.UdpEncapsulationSocket OpenUdpEncapsulationSocket();
-        public IpSecManager.UdpEncapsulationSocket OpenUdpEncapsulationSocket(int port);
+        public virtual IpSecManager.UdpEncapsulationSocket OpenUdpEncapsulationSocket(int port);
-        public void RemoveTransportModeTransforms(FileDescriptor socket);
+        public virtual void RemoveTransportModeTransforms(FileDescriptor socket);
-        public void RemoveTransportModeTransforms(DatagramSocket socket);
+        public virtual void RemoveTransportModeTransforms(DatagramSocket socket);
-        public void RemoveTransportModeTransforms(Socket socket);
+        public virtual void RemoveTransportModeTransforms(Socket socket);
     }
     public enum NetCapability {
+        Mmtel = 33,
+        PrioritizeBandwidth = 35,
+        PrioritizeLatency = 34,
     }
+    public enum NetEnterpriseId {
+        Five = 5,
+        Four = 4,
+        One = 1,
+        Three = 3,
+        Two = 2,
+    }
     public sealed class NetworkCapabilities : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const NetCapability NetCapabilityMmtel = NetCapability.Mmtel;
+        public const NetCapability NetCapabilityPrioritizeBandwidth = NetCapability.PrioritizeBandwidth;
+        public const NetCapability NetCapabilityPrioritizeLatency = NetCapability.PrioritizeLatency;
+        public const NetEnterpriseId NetEnterpriseId1 = NetEnterpriseId.One;
+        public const NetEnterpriseId NetEnterpriseId2 = NetEnterpriseId.Two;
+        public const NetEnterpriseId NetEnterpriseId3 = NetEnterpriseId.Three;
+        public const NetEnterpriseId NetEnterpriseId4 = NetEnterpriseId.Four;
+        public const NetEnterpriseId NetEnterpriseId5 = NetEnterpriseId.Five;
+        public int[] GetEnterpriseIds();
+        public bool HasEnterpriseId(int enterpriseId);
     }
     public abstract class PlatformVpnProfile : Object {
+        public bool IsInternetValidationRequired { get; }
+        public bool AreLocalRoutesExcluded();
     }
     public sealed class RouteInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const RouteType RtnThrow = RouteType.Throw;
+        public const RouteType RtnUnicast = RouteType.Unicast;
+        public const RouteType RtnUnreachable = RouteType.Unreachable;
+        public int Type { get; }
     }
+    public enum RouteType {
+        Throw = 9,
+        Unicast = 1,
+        Unreachable = 7,
+    }
+    public sealed class StaticIpConfiguration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public IList<InetAddress> DnsServers { get; }
+        public string? Domains { get; }
+        public InetAddress? Gateway { get; }
+        public LinkAddress IpAddress { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public StaticIpConfiguration Build();
+            public StaticIpConfiguration.Builder SetDnsServers(IIterable dnsServers);
+            public StaticIpConfiguration.Builder SetDomains(string? newDomains);
+            public StaticIpConfiguration.Builder SetGateway(InetAddress? gateway);
+            public StaticIpConfiguration.Builder SetIpAddress(LinkAddress ipAddress);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public class TrafficStats : Object {
-        public static void TagDatagramSocket(DatagramSocket? socket);
+        public static void TagDatagramSocket(DatagramSocket socket);
-        public static void TagFileDescriptor(FileDescriptor? fd);
+        public static void TagFileDescriptor(FileDescriptor fd);
-        public static void TagSocket(Socket? socket);
+        public static void TagSocket(Socket socket);
-        public static void UntagDatagramSocket(DatagramSocket? socket);
+        public static void UntagDatagramSocket(DatagramSocket socket);
-        public static void UntagFileDescriptor(FileDescriptor? fd);
+        public static void UntagFileDescriptor(FileDescriptor fd);
-        public static void UntagSocket(Socket? socket);
+        public static void UntagSocket(Socket socket);
     }
+    public enum VpnErrorClass {
+        NotRecoverable = 1,
+        Recoverable = 2,
+    }
+    public enum VpnErrorCode {
+        NetworkIO = 3,
+        NetworkLost = 2,
+        NetworkProtocolTimeout = 1,
+        UnknownHost = 0,
+    }
     public class VpnManager : Object {
+        public const VpnErrorClass ErrorClassNotRecoverable = VpnErrorClass.NotRecoverable;
+        public const VpnErrorClass ErrorClassRecoverable = VpnErrorClass.Recoverable;
+        public const VpnErrorCode ErrorCodeNetworkIo = VpnErrorCode.NetworkIO;
+        public const VpnErrorCode ErrorCodeNetworkLost = VpnErrorCode.NetworkLost;
+        public const VpnErrorCode ErrorCodeNetworkProtocolTimeout = VpnErrorCode.NetworkProtocolTimeout;
+        public const VpnErrorCode ErrorCodeNetworkUnknownHost = VpnErrorCode.UnknownHost;
+        public const string ActionVpnManagerEvent = "android.net.action.VPN_MANAGER_EVENT";
+        public const string CategoryEventAlwaysOnStateChanged = "android.net.category.EVENT_ALWAYS_ON_STATE_CHANGED";
+        public const string CategoryEventDeactivatedByUser = "android.net.category.EVENT_DEACTIVATED_BY_USER";
+        public const string CategoryEventIkeError = "android.net.category.EVENT_IKE_ERROR";
+        public const string CategoryEventNetworkError = "android.net.category.EVENT_NETWORK_ERROR";
+        public const string ExtraErrorClass = "android.net.extra.ERROR_CLASS";
+        public const string ExtraErrorCode = "android.net.extra.ERROR_CODE";
+        public const string ExtraSessionKey = "android.net.extra.SESSION_KEY";
+        public const string ExtraTimestampMillis = "android.net.extra.TIMESTAMP_MILLIS";
+        public const string ExtraUnderlyingLinkProperties = "android.net.extra.UNDERLYING_LINK_PROPERTIES";
+        public const string ExtraUnderlyingNetwork = "android.net.extra.UNDERLYING_NETWORK";
+        public const string ExtraUnderlyingNetworkCapabilities = "android.net.extra.UNDERLYING_NETWORK_CAPABILITIES";
+        public const string ExtraVpnProfileState = "android.net.extra.VPN_PROFILE_STATE";
+        public virtual VpnProfileState? ProvisionedVpnProfileState { get; }
+        public virtual string StartProvisionedVpnProfileSession();
     }
+    public sealed class VpnProfileState : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const VpnState StateConnected = VpnState.Connected;
+        public const VpnState StateConnecting = VpnState.Connecting;
+        public const VpnState StateDisconnected = VpnState.Disconnected;
+        public const VpnState StateFailed = VpnState.Failed;
+        public VpnProfileState(int state, string? sessionKey, bool alwaysOn, bool lockdown);
+        public static IParcelableCreator Creator { get; }
+        public bool IsAlwaysOn { get; }
+        public bool IsLockdownEnabled { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string? SessionId { get; }
+        public int State { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public class VpnService : Service {
         public class Builder : Object {
+            public virtual VpnService.Builder AddRoute(IpPrefix prefix);
+            public virtual VpnService.Builder ExcludeRoute(IpPrefix prefix);
         }
     }
+    public enum VpnState {
+        Connected = 2,
+        Connecting = 1,
+        Disconnected = 0,
+        Failed = 3,
+    }
 }

Android.Net.Eap

 namespace Android.Net.Eap {
+    public sealed class EapAkaInfo : EapInfo {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public byte[]? GetReauthId();
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public EapAkaInfo Build();
+            public EapAkaInfo.Builder SetReauthId(byte[] reauthId);
+        }
+    }
+    public abstract class EapInfo : Object {
+        protected EapInfo(IntPtr javaReference, JniHandleOwnership transfer);
+        public int EapMethodType { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
     public sealed class EapSessionConfig : Object {
         public sealed class Builder : Object {
+            public EapSessionConfig.Builder SetEapAkaConfig(int subId, int apptype, EapSessionConfig.EapAkaOption options);
         }
         public class EapAkaConfig : EapSessionConfig.EapMethodConfig {
+            public virtual EapSessionConfig.EapAkaOption EapAkaOption { get; }
         }
+        public sealed class EapAkaOption : Object {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public byte[]? GetReauthId();
+            public sealed class Builder : Object {
+                public Builder();
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public EapSessionConfig.EapAkaOption Build();
+                public EapSessionConfig.EapAkaOption.Builder SetReauthId(byte[] reauthId);
+            }
+        }
     }
 }

Android.Net.IpSec.Ike

 namespace Android.Net.IpSec.Ike {
     public sealed class IkeSessionConfiguration : Object {
+        public EapInfo? EapInfo { get; }
         public sealed class Builder : Object {
+            public IkeSessionConfiguration.Builder SetEapInfo(EapInfo? eapInfo);
         }
     }
     public enum IkeSessionOption {
+        InitialContact = 4,
     }
     public sealed class IkeSessionParams : Object {
+        public const IkeSessionOption IkeOptionInitialContact = IkeSessionOption.InitialContact;
     }
 }

Android.Net.IpSec.Ike.Exceptions

 namespace Android.Net.IpSec.Ike.Exceptions {
+    public sealed class IkeIOException : IkeNonProtocolException {
+        public IkeIOException(IOException cause);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class IkeTimeoutException : IOException {
+        public IkeTimeoutException(string message);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
 }

Android.Net.Nsd

 namespace Android.Net.Nsd {
     public sealed class NsdManager : Object {
+        public void DiscoverServices(string serviceType, NsdProtocol protocolType, Network? network, IExecutor executor, NsdManager.IDiscoveryListener listener);
+        public void DiscoverServices(string serviceType, NsdProtocol protocolType, NetworkRequest networkRequest, IExecutor executor, NsdManager.IDiscoveryListener listener);
+        public void RegisterService(NsdServiceInfo serviceInfo, NsdProtocol protocolType, IExecutor executor, NsdManager.IRegistrationListener listener);
+        public void ResolveService(NsdServiceInfo serviceInfo, IExecutor executor, NsdManager.IResolveListener listener);
     }
     public sealed class NsdServiceInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public Network Network { get; set; }
     }
 }

Android.Net.Vcn

 namespace Android.Net.Vcn {
+    public enum TemplateMatchParameter {
+        Any = 0,
+        Forbidden = 2,
+        Required = 1,
+    }
+    public sealed class VcnCellUnderlyingNetworkTemplate : VcnUnderlyingNetworkTemplate {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public ICollection<string> OperatorPlmnIds { get; }
+        public int Opportunistic { get; }
+        public int Roaming { get; }
+        public ICollection<Integer> SimSpecificCarrierIds { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public VcnCellUnderlyingNetworkTemplate Build();
+            public VcnCellUnderlyingNetworkTemplate.Builder SetMetered(int matchCriteria);
+            public VcnCellUnderlyingNetworkTemplate.Builder SetMinDownstreamBandwidthKbps(int minEntryDownstreamBandwidthKbps, int minExitDownstreamBandwidthKbps);
+            public VcnCellUnderlyingNetworkTemplate.Builder SetMinUpstreamBandwidthKbps(int minEntryUpstreamBandwidthKbps, int minExitUpstreamBandwidthKbps);
+            public VcnCellUnderlyingNetworkTemplate.Builder SetOperatorPlmnIds(ICollection<string> operatorPlmnIds);
+            public VcnCellUnderlyingNetworkTemplate.Builder SetOpportunistic(int matchCriteria);
+            public VcnCellUnderlyingNetworkTemplate.Builder SetRoaming(int matchCriteria);
+            public VcnCellUnderlyingNetworkTemplate.Builder SetSimSpecificCarrierIds(ICollection<Integer> simSpecificCarrierIds);
+        }
+    }
     public sealed class VcnGatewayConnectionConfig : Object {
+        public IList<VcnUnderlyingNetworkTemplate> VcnUnderlyingNetworkPriorities { get; }
         public sealed class Builder : Object {
+            public VcnGatewayConnectionConfig.Builder SetVcnUnderlyingNetworkPriorities(IList<VcnUnderlyingNetworkTemplate> underlyingNetworkTemplates);
         }
     }
+    public abstract class VcnUnderlyingNetworkTemplate : Object {
+        public const TemplateMatchParameter MatchAny = TemplateMatchParameter.Any;
+        public const TemplateMatchParameter MatchForbidden = TemplateMatchParameter.Forbidden;
+        public const TemplateMatchParameter MatchRequired = TemplateMatchParameter.Required;
+        protected VcnUnderlyingNetworkTemplate(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual int Metered { get; }
+        public virtual int MinEntryDownstreamBandwidthKbps { get; }
+        public virtual int MinEntryUpstreamBandwidthKbps { get; }
+        public virtual int MinExitDownstreamBandwidthKbps { get; }
+        public virtual int MinExitUpstreamBandwidthKbps { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class VcnWifiUnderlyingNetworkTemplate : VcnUnderlyingNetworkTemplate {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public ICollection<string> Ssids { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public VcnWifiUnderlyingNetworkTemplate Build();
+            public VcnWifiUnderlyingNetworkTemplate.Builder SetMetered(int matchCriteria);
+            public VcnWifiUnderlyingNetworkTemplate.Builder SetMinDownstreamBandwidthKbps(int minEntryDownstreamBandwidthKbps, int minExitDownstreamBandwidthKbps);
+            public VcnWifiUnderlyingNetworkTemplate.Builder SetMinUpstreamBandwidthKbps(int minEntryUpstreamBandwidthKbps, int minExitUpstreamBandwidthKbps);
+            public VcnWifiUnderlyingNetworkTemplate.Builder SetSsids(ICollection<string> ssids);
+        }
+    }
 }

Android.Net.Wifi

 namespace Android.Net.Wifi {
+    public enum ActionRemoveSuggestionType {
+        Disconnect = 2,
+        Linger = 1,
+    }
+    public enum InterfaceType {
+        Ap = 1,
+        Aware = 2,
+        Direct = 3,
+        Sta = 0,
+    }
+    public sealed class MloLink : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const MloLinkState MloLinkStateActive = MloLinkState.Active;
+        public const MloLinkState MloLinkStateIdle = MloLinkState.Idle;
+        public const MloLinkState MloLinkStateInvalid = MloLinkState.Invalid;
+        public const MloLinkState MloLinkStateUnassociated = MloLinkState.Unassociated;
+        public const int InvalidMloLinkId = -1;
+        public MloLink();
+        public MacAddress? ApMacAddress { get; }
+        public int Band { get; }
+        public int Channel { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int LinkId { get; }
+        public MacAddress? StaMacAddress { get; }
+        public int State { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum MloLinkState {
+        Active = 3,
+        Idle = 2,
+        Invalid = 0,
+        Unassociated = 1,
+    }
+    public enum MultiInternetMode {
+        DbsAp = 1,
+        Disabled = 0,
+        MultiAp = 2,
+    }
     public enum NetworkStatus {
+        SuggestionsErrorRestrictedByAdmin = 8,
     }
+    public enum Preamble {
+        Eht = 4,
+        He = 3,
+        Ht = 1,
+        Legacy = 0,
+        Vht = 2,
+    }
     public class ScanResult : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const Preamble PreambleEht = Preamble.Eht;
+        public const Preamble PreambleHe = Preamble.He;
+        public const Preamble PreambleHt = Preamble.Ht;
+        public const Preamble PreambleLegacy = Preamble.Legacy;
+        public const Preamble PreambleVht = Preamble.Vht;
+        public const WifiChannelWidth ChannelWidth320mhz = WifiChannelWidth.Width320mhz;
+        public const WifiStandard WifiStandard11be = WifiStandard.Wifi11be;
+        public virtual IList<MloLink> AffiliatedMloLinks { get; }
+        public virtual MacAddress ApMldMacAddress { get; }
+        public virtual int ApMloLinkId { get; }
+        public virtual WifiSsid WifiSsid { get; }
+        public virtual int[] GetSecurityTypes();
         public class InformationElement : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public InformationElement(int id, int idExt, byte[] bytes);
         }
     }
     public sealed class SoftApConfiguration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const SoftApConfigurationSecurityType SecurityTypeWpa3Owe = SoftApConfigurationSecurityType.Wpa3Owe;
+        public const SoftApConfigurationSecurityType SecurityTypeWpa3OweTransition = SoftApConfigurationSecurityType.Wpa3OweTransition;
+        public WifiSsid? WifiSsid { get; }
     }
     public enum SoftApConfigurationSecurityType {
+        Wpa3Owe = 5,
+        Wpa3OweTransition = 4,
     }
     public enum WifiChannelWidth {
+        Width320mhz = 5,
     }
     public class WifiConfiguration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const WifiConfigurationRandomization RandomizationAuto = WifiConfigurationRandomization.Auto;
+        public const WifiConfigurationRandomization RandomizationNone = WifiConfigurationRandomization.None;
+        public const WifiConfigurationRandomization RandomizationNonPersistent = WifiConfigurationRandomization.NonPersistent;
+        public const WifiConfigurationRandomization RandomizationPersistent = WifiConfigurationRandomization.Persistent;
+        public const WifiConfigurationSecurityType SecurityTypeDpp = WifiConfigurationSecurityType.Dpp;
+        public virtual bool IsDppConfigurator { get; }
+        public virtual int MacRandomizationSetting { get; set; }
+        public virtual void SetIpConfiguration(IpConfiguration ipConfiguration);
     }
+    public enum WifiConfigurationRandomization {
+        Auto = 3,
+        None = 0,
+        NonPersistent = 2,
+        Persistent = 1,
+    }
     public enum WifiConfigurationSecurityType {
+        Dpp = 13,
     }
     public class WifiEnterpriseConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual bool HasCaCertificate { get; }
+        public virtual bool IsTrustOnFirstUseEnabled { get; }
+        public virtual void EnableTrustOnFirstUse(bool enable);
     }
     public class WifiInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable, ITransportInfo {
+        public const WifiSecurityType SecurityTypeDpp = WifiSecurityType.Dpp;
+        public virtual IList<MloLink> AffiliatedMloLinks { get; }
+        public virtual MacAddress ApMldMacAddress { get; }
+        public virtual int ApMloLinkId { get; }
+        public virtual bool IsRestricted { get; }
     }
     public class WifiManager : Object {
+        public const ActionRemoveSuggestionType ActionRemoveSuggestionDisconnect = ActionRemoveSuggestionType.Disconnect;
+        public const ActionRemoveSuggestionType ActionRemoveSuggestionLinger = ActionRemoveSuggestionType.Linger;
+        public const InterfaceType WifiInterfaceTypeAp = InterfaceType.Ap;
+        public const InterfaceType WifiInterfaceTypeAware = InterfaceType.Aware;
+        public const InterfaceType WifiInterfaceTypeDirect = InterfaceType.Direct;
+        public const InterfaceType WifiInterfaceTypeSta = InterfaceType.Sta;
+        public const MultiInternetMode WifiMultiInternetModeDbsAp = MultiInternetMode.DbsAp;
+        public const MultiInternetMode WifiMultiInternetModeDisabled = MultiInternetMode.Disabled;
+        public const MultiInternetMode WifiMultiInternetModeMultiAp = MultiInternetMode.MultiAp;
+        public const NetworkStatus StatusNetworkSuggestionsErrorRestrictedByAdmin = NetworkStatus.SuggestionsErrorRestrictedByAdmin;
+        public virtual bool IsEasyConnectDppAkmSupported { get; }
+        public virtual bool IsStaConcurrencyForMultiInternetSupported { get; }
+        public virtual bool IsTrustOnFirstUseSupported { get; }
+        public virtual bool IsWifiPasspointEnabled { get; }
+        public virtual int StaConcurrencyForMultiInternetMode { get; }
+        public virtual void AllowAutojoinGlobal(bool allowAutojoin);
+        public virtual void QueryAutojoinGlobal(IExecutor executor, IConsumer resultsCallback);
+        public virtual NetworkStatus RemoveNetworkSuggestions(IList<WifiNetworkSuggestion> networkSuggestions, int action);
+        public virtual void ReportCreateInterfaceImpact(int interfaceType, bool requireNewInterface, IExecutor executor, IBiConsumer resultCallback);
+        public class InterfaceCreationImpact : Object {
+            public InterfaceCreationImpact(int interfaceType, ICollection<string> packages);
+            protected InterfaceCreationImpact(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual int InterfaceType { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual ICollection<string> Packages { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
     }
     public sealed class WifiNetworkSuggestion : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public bool IsRestricted { get; }
+        public int MacRandomizationSetting { get; }
+        public ParcelUuid SubscriptionGroup { get; }
+        public WifiSsid WifiSsid { get; }
         public sealed class Builder : Object {
+            public WifiNetworkSuggestion.Builder SetRestricted(bool isRestricted);
+            public WifiNetworkSuggestion.Builder SetSubscriptionGroup(ParcelUuid groupUuid);
+            public WifiNetworkSuggestion.Builder SetWifiSsid(WifiSsid wifiSsid);
         }
     }
     public enum WifiSecurityType {
+        Dpp = 13,
     }
+    public sealed class WifiSsid : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public static WifiSsid FromBytes(byte[]? bytes);
+        public byte[] GetBytes();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public enum WifiStandard {
+        Wifi11be = 8,
     }
 }

Android.Net.Wifi.Aware

 namespace Android.Net.Wifi.Aware {
     public class AttachCallback : Object {
+        public virtual void OnAwareSessionTerminated();
     }
     public sealed class Characteristics : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const WifiAwareCipherSuite WifiAwareCipherSuiteNcsPk128 = WifiAwareCipherSuite.NcsPk128;
+        public const WifiAwareCipherSuite WifiAwareCipherSuiteNcsPk256 = WifiAwareCipherSuite.NcsPk256;
+        public const WifiAwareCipherSuite WifiAwareCipherSuiteNone = WifiAwareCipherSuite.None;
+        public int NumberOfSupportedDataInterfaces { get; }
+        public int NumberOfSupportedDataPaths { get; }
+        public int NumberOfSupportedPublishSessions { get; }
+        public int NumberOfSupportedSubscribeSessions { get; }
     }
     public class DiscoverySessionCallback : Object {
+        public virtual void OnServiceDiscovered(ServiceDiscoveryInfo info);
+        public virtual void OnServiceDiscoveredWithinRange(ServiceDiscoveryInfo info, int distanceMm);
     }
     public sealed class PublishConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int InstantCommunicationBand { get; }
+        public bool IsInstantCommunicationModeEnabled { get; }
+        public WifiAwareDataPathSecurityConfig? SecurityConfig { get; }
         public sealed class Builder : Object {
-            public PublishConfig Build();
+            public PublishConfig? Build();
+            public PublishConfig.Builder SetDataPathSecurityConfig(WifiAwareDataPathSecurityConfig securityConfig);
+            public PublishConfig.Builder SetInstantCommunicationModeEnabled(bool enabled, int band);
-            public PublishConfig.Builder SetMatchFilter(IList<byte[]>? matchFilter);
+            public PublishConfig.Builder? SetMatchFilter(IList<byte[]>? matchFilter);
-            public PublishConfig.Builder SetPublishType(PublishType publishType);
+            public PublishConfig.Builder? SetPublishType(PublishType publishType);
-            public PublishConfig.Builder SetRangingEnabled(bool enable);
+            public PublishConfig.Builder? SetRangingEnabled(bool enable);
-            public PublishConfig.Builder SetServiceSpecificInfo(byte[] serviceSpecificInfo);
+            public PublishConfig.Builder? SetServiceSpecificInfo(byte[]? serviceSpecificInfo);
-            public PublishConfig.Builder SetTerminateNotificationEnabled(bool enable);
+            public PublishConfig.Builder? SetTerminateNotificationEnabled(bool enable);
-            public PublishConfig.Builder SetTtlSec(int ttlSec);
+            public PublishConfig.Builder? SetTtlSec(int ttlSec);
         }
     }
+    public sealed class ServiceDiscoveryInfo : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<byte[]> MatchFilters { get; }
+        public int PeerCipherSuite { get; }
+        public PeerHandle PeerHandle { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public byte[]? GetScid();
+        public byte[]? GetServiceSpecificInfo();
+    }
     public sealed class SubscribeConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int InstantCommunicationBand { get; }
+        public bool IsInstantCommunicationModeEnabled { get; }
         public sealed class Builder : Object {
+            public SubscribeConfig.Builder SetInstantCommunicationModeEnabled(bool enabled, int band);
         }
     }
+    public sealed class WifiAwareChannelInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int ChannelBandwidth { get; }
+        public int ChannelFrequencyMhz { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int SpatialStreamCount { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public enum WifiAwareCipherSuite {
+        NcsPk128 = 4,
+        NcsPk256 = 8,
     }
+    public sealed class WifiAwareDataPathSecurityConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int CipherSuite { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string? PskPassphrase { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public byte[]? GetPmk();
+        public byte[]? GetPmkId();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(int cipherSuite);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public WifiAwareDataPathSecurityConfig Build();
+            public WifiAwareDataPathSecurityConfig.Builder SetPmk(byte[] pmk);
+            public WifiAwareDataPathSecurityConfig.Builder SetPmkId(byte[] pmkId);
+            public WifiAwareDataPathSecurityConfig.Builder SetPskPassphrase(string pskPassphrase);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public class WifiAwareManager : Object {
+        public const string ActionWifiAwareResourceChanged = "android.net.wifi.aware.action.WIFI_AWARE_RESOURCE_CHANGED";
+        public const string ExtraAwareResources = "android.net.wifi.aware.extra.AWARE_RESOURCES";
+        public virtual bool IsSetChannelOnDataPathSupported { get; }
     }
     public sealed class WifiAwareNetworkInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable, ITransportInfo {
+        public IList<WifiAwareChannelInfo> ChannelInfoList { get; }
     }
     public sealed class WifiAwareNetworkSpecifier : NetworkSpecifier, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int ChannelFrequencyMhz { get; }
+        public bool IsChannelRequired { get; }
+        public WifiAwareDataPathSecurityConfig? WifiAwareDataPathSecurityConfig { get; }
         public sealed class Builder : Object {
+            public WifiAwareNetworkSpecifier.Builder SetChannelFrequencyMhz(int channelInMhz, bool required);
+            public WifiAwareNetworkSpecifier.Builder SetDataPathSecurityConfig(WifiAwareDataPathSecurityConfig securityConfig);
         }
     }
 }

Android.Net.Wifi.Hotspot2

 namespace Android.Net.Wifi.Hotspot2 {
     public sealed class PasspointConfiguration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public void SetSubscriptionExpirationTimeInMillis(long subscriptionExpirationTimeInMillis);
     }
 }

Android.Net.Wifi.P2p

 namespace Android.Net.Wifi.P2p {
+    public enum ApproverDetachReason {
+        Close = 3,
+        Failure = 1,
+        Remove = 0,
+        Replace = 2,
+    }
+    public enum ConnectionRequestType {
+        Accept = 0,
+        DeferShowPinToService = 3,
+        DeferToService = 2,
+        Reject = 1,
+    }
+    public enum ExternalApproverRequestType {
+        Invitation = 1,
+        Join = 2,
+        Negotiation = 0,
+    }
     public class WifiP2pDevice : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual IList<ScanResult.InformationElement> VendorElements { get; }
     }
     public class WifiP2pManager : Object {
+        public const ConnectionRequestType ConnectionRequestAccept = ConnectionRequestType.Accept;
+        public const ConnectionRequestType ConnectionRequestDeferShowPinToService = ConnectionRequestType.DeferShowPinToService;
+        public const ConnectionRequestType ConnectionRequestDeferToService = ConnectionRequestType.DeferToService;
+        public const ConnectionRequestType ConnectionRequestReject = ConnectionRequestType.Reject;
+        public const string ActionWifiP2pRequestResponseChanged = "android.net.wifi.p2p.action.WIFI_P2P_REQUEST_RESPONSE_CHANGED";
+        public const string ExtraRequestConfig = "android.net.wifi.p2p.extra.REQUEST_CONFIG";
+        public const string ExtraRequestResponse = "android.net.wifi.p2p.extra.REQUEST_RESPONSE";
+        public virtual bool IsChannelConstrainedDiscoverySupported { get; }
+        public virtual bool IsGroupClientRemovalSupported { get; }
+        public virtual bool IsSetVendorElementsSupported { get; }
+        public static int P2pMaxAllowedVendorElementsLengthBytes { get; }
+        public virtual void AddExternalApprover(WifiP2pManager.Channel c, MacAddress deviceAddress, WifiP2pManager.IExternalApproverRequestListener listener);
-        public virtual void AddLocalService(WifiP2pManager.Channel? c, WifiP2pServiceInfo? servInfo, WifiP2pManager.IActionListener? listener);
+        public virtual void AddLocalService(WifiP2pManager.Channel? channel, WifiP2pServiceInfo? servInfo, WifiP2pManager.IActionListener? listener);
-        public virtual void AddServiceRequest(WifiP2pManager.Channel? c, WifiP2pServiceRequest? req, WifiP2pManager.IActionListener? listener);
+        public virtual void AddServiceRequest(WifiP2pManager.Channel? channel, WifiP2pServiceRequest? req, WifiP2pManager.IActionListener? listener);
-        public virtual void CancelConnect(WifiP2pManager.Channel? c, WifiP2pManager.IActionListener? listener);
+        public virtual void CancelConnect(WifiP2pManager.Channel? channel, WifiP2pManager.IActionListener? listener);
-        public virtual void ClearLocalServices(WifiP2pManager.Channel? c, WifiP2pManager.IActionListener? listener);
+        public virtual void ClearLocalServices(WifiP2pManager.Channel? channel, WifiP2pManager.IActionListener? listener);
-        public virtual void ClearServiceRequests(WifiP2pManager.Channel? c, WifiP2pManager.IActionListener? listener);
+        public virtual void ClearServiceRequests(WifiP2pManager.Channel? channel, WifiP2pManager.IActionListener? listener);
-        public virtual void Connect(WifiP2pManager.Channel? c, WifiP2pConfig? config, WifiP2pManager.IActionListener? listener);
+        public virtual void Connect(WifiP2pManager.Channel? channel, WifiP2pConfig? config, WifiP2pManager.IActionListener? listener);
-        public virtual void CreateGroup(WifiP2pManager.Channel c, WifiP2pConfig? config, WifiP2pManager.IActionListener? listener);
+        public virtual void CreateGroup(WifiP2pManager.Channel channel, WifiP2pConfig? config, WifiP2pManager.IActionListener? listener);
-        public virtual void CreateGroup(WifiP2pManager.Channel? c, WifiP2pManager.IActionListener? listener);
+        public virtual void CreateGroup(WifiP2pManager.Channel? channel, WifiP2pManager.IActionListener? listener);
-        public virtual void DiscoverPeers(WifiP2pManager.Channel? c, WifiP2pManager.IActionListener? listener);
+        public virtual void DiscoverPeers(WifiP2pManager.Channel? channel, WifiP2pManager.IActionListener? listener);
+        public virtual void DiscoverPeersOnSocialChannels(WifiP2pManager.Channel channel, WifiP2pManager.IActionListener? listener);
+        public virtual void DiscoverPeersOnSpecificFrequency(WifiP2pManager.Channel channel, int frequencyMhz, WifiP2pManager.IActionListener? listener);
-        public virtual void DiscoverServices(WifiP2pManager.Channel? c, WifiP2pManager.IActionListener? listener);
+        public virtual void DiscoverServices(WifiP2pManager.Channel? channel, WifiP2pManager.IActionListener? listener);
+        public virtual void RemoveClient(WifiP2pManager.Channel channel, MacAddress peerAddress, WifiP2pManager.IActionListener? listener);
+        public virtual void RemoveExternalApprover(WifiP2pManager.Channel c, MacAddress deviceAddress, WifiP2pManager.IActionListener? listener);
-        public virtual void RemoveGroup(WifiP2pManager.Channel? c, WifiP2pManager.IActionListener? listener);
+        public virtual void RemoveGroup(WifiP2pManager.Channel? channel, WifiP2pManager.IActionListener? listener);
-        public virtual void RemoveLocalService(WifiP2pManager.Channel? c, WifiP2pServiceInfo? servInfo, WifiP2pManager.IActionListener? listener);
+        public virtual void RemoveLocalService(WifiP2pManager.Channel? channel, WifiP2pServiceInfo? servInfo, WifiP2pManager.IActionListener? listener);
-        public virtual void RemoveServiceRequest(WifiP2pManager.Channel? c, WifiP2pServiceRequest? req, WifiP2pManager.IActionListener? listener);
+        public virtual void RemoveServiceRequest(WifiP2pManager.Channel? channel, WifiP2pServiceRequest? req, WifiP2pManager.IActionListener? listener);
-        public virtual void RequestConnectionInfo(WifiP2pManager.Channel? c, WifiP2pManager.IConnectionInfoListener? listener);
+        public virtual void RequestConnectionInfo(WifiP2pManager.Channel? channel, WifiP2pManager.IConnectionInfoListener? listener);
-        public virtual void RequestGroupInfo(WifiP2pManager.Channel? c, WifiP2pManager.IGroupInfoListener? listener);
+        public virtual void RequestGroupInfo(WifiP2pManager.Channel? channel, WifiP2pManager.IGroupInfoListener? listener);
-        public virtual void RequestPeers(WifiP2pManager.Channel? c, WifiP2pManager.IPeerListListener? listener);
+        public virtual void RequestPeers(WifiP2pManager.Channel? channel, WifiP2pManager.IPeerListListener? listener);
+        public virtual void SetConnectionRequestResult(WifiP2pManager.Channel c, MacAddress deviceAddress, int result, WifiP2pManager.IActionListener? listener);
+        public virtual void SetConnectionRequestResult(WifiP2pManager.Channel c, MacAddress deviceAddress, int result, string? pin, WifiP2pManager.IActionListener? listener);
-        public virtual void SetDnsSdResponseListeners(WifiP2pManager.Channel? c, WifiP2pManager.IDnsSdServiceResponseListener? servListener, WifiP2pManager.IDnsSdTxtRecordListener? txtListener);
+        public virtual void SetDnsSdResponseListeners(WifiP2pManager.Channel? channel, WifiP2pManager.IDnsSdServiceResponseListener? servListener, WifiP2pManager.IDnsSdTxtRecordListener? txtListener);
-        public virtual void SetServiceResponseListener(WifiP2pManager.Channel? c, WifiP2pManager.IServiceResponseListener? listener);
+        public virtual void SetServiceResponseListener(WifiP2pManager.Channel? channel, WifiP2pManager.IServiceResponseListener? listener);
-        public virtual void SetUpnpServiceResponseListener(WifiP2pManager.Channel? c, WifiP2pManager.IUpnpServiceResponseListener? listener);
+        public virtual void SetUpnpServiceResponseListener(WifiP2pManager.Channel? channel, WifiP2pManager.IUpnpServiceResponseListener? listener);
+        public virtual void SetVendorElements(WifiP2pManager.Channel c, IList<ScanResult.InformationElement> vendorElements, WifiP2pManager.IActionListener? listener);
+        public virtual void StartListening(WifiP2pManager.Channel channel, WifiP2pManager.IActionListener? listener);
+        public virtual void StopListening(WifiP2pManager.Channel channel, WifiP2pManager.IActionListener? listener);
-        public virtual void StopPeerDiscovery(WifiP2pManager.Channel? c, WifiP2pManager.IActionListener? listener);
+        public virtual void StopPeerDiscovery(WifiP2pManager.Channel? channel, WifiP2pManager.IActionListener? listener);
+        public class AttachedEventArgs : EventArgs {
+            public AttachedEventArgs(MacAddress deviceAddress);
+            public MacAddress DeviceAddress { get; }
+        }
+        public class ConnectionRequestedEventArgs : EventArgs {
+            public ConnectionRequestedEventArgs(int requestType, WifiP2pConfig config, WifiP2pDevice device);
+            public WifiP2pConfig Config { get; }
+            public WifiP2pDevice Device { get; }
+            public int RequestType { get; }
+        }
+        public class DetachedEventArgs : EventArgs {
+            public DetachedEventArgs(MacAddress deviceAddress, int reason);
+            public MacAddress DeviceAddress { get; }
+            public int Reason { get; }
+        }
+        public interface IExternalApproverRequestListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnAttached(MacAddress deviceAddress);
+            void OnConnectionRequested(int requestType, WifiP2pConfig config, WifiP2pDevice device);
+            void OnDetached(MacAddress deviceAddress, int reason);
+            void OnPinGenerated(MacAddress deviceAddress, string pin);
+        }
+        public class PinGeneratedEventArgs : EventArgs {
+            public PinGeneratedEventArgs(MacAddress deviceAddress, string pin);
+            public MacAddress DeviceAddress { get; }
+            public string Pin { get; }
+        }
     }
 }

Android.Net.Wifi.Rtt

 namespace Android.Net.Wifi.Rtt {
     public sealed class RangingRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public sealed class Builder : Object {
-            public RangingRequest.Builder? AddAccessPoint(ScanResult apInfo);
+            public RangingRequest.Builder AddAccessPoint(ScanResult apInfo);
-            public RangingRequest.Builder? AddAccessPoints(IList<ScanResult> apInfos);
+            public RangingRequest.Builder AddAccessPoints(IList<ScanResult> apInfos);
+            public RangingRequest.Builder AddResponder(ResponderConfig responder);
+            public RangingRequest.Builder AddResponders(IList<ResponderConfig> responders);
         }
     }
+    public sealed class ResponderConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int CenterFreq0Mhz { get; }
+        public int CenterFreq1Mhz { get; }
+        public int ChannelWidth { get; }
+        public static IParcelableCreator Creator { get; }
+        public int FrequencyMhz { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public MacAddress? MacAddress { get; }
+        public int Preamble { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public static ResponderConfig FromScanResult(ScanResult scanResult);
+        public bool Is80211mcSupported();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ResponderConfig Build();
+            public ResponderConfig.Builder Set80211mcSupported(bool supports80211mc);
+            public ResponderConfig.Builder SetCenterFreq0Mhz(int centerFreq0);
+            public ResponderConfig.Builder SetCenterFreq1Mhz(int centerFreq1);
+            public ResponderConfig.Builder SetChannelWidth(int channelWidth);
+            public ResponderConfig.Builder SetFrequencyMhz(int frequency);
+            public ResponderConfig.Builder SetMacAddress(MacAddress macAddress);
+            public ResponderConfig.Builder SetPreamble(int preamble);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
 }

Android.Opengl

 namespace Android.Opengl {
     public class EGLExt : Object {
+        public const int EglNoNativeFenceFdAndroid = -1;
+        public const int EglSyncNativeFenceAndroid = 12612;
+        public const int EglSyncNativeFenceFdAndroid = 12613;
+        public const int EglSyncNativeFenceSignaledAndroid = 12614;
+        public static SyncFence EglDupNativeFenceFDANDROID(EGLDisplay display, EGLSync sync);
     }
 }

Android.OS

 namespace Android.OS {
     public class BatteryManager : Object {
+        public const BatteryPlugged BatteryPluggedDock = BatteryPlugged.Dock;
     }
     public enum BatteryPlugged {
+        Dock = 8,
     }
     public class Build : Object {
         public class VERSION : Object {
+            public static string ReleaseOrPreviewDisplay { get; }
         }
         public class VERSION_CODES : Object {
+            public const BuildVersionCodes Tiramisu = BuildVersionCodes.Tiramisu;
         }
     }
     public enum BuildVersionCodes {
+        Tiramisu = 33,
     }
     public sealed class Bundle : BaseBundle, ICloneable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public Object GetParcelable(string key, Class clazz);
+        public Object[]? GetParcelableArray(string? key, Class clazz);
+        public IList GetParcelableArrayList(string key, Class clazz);
+        public Object GetSerializable(string key, Class clazz);
+        public SparseArray GetSparseParcelableArray(string key, Class clazz);
     }
     public abstract class CombinedVibration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
-        public abstract void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
+        public abstract void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
     }
     public interface IParcelable : IDisposable, IJavaObject, IJavaPeerable {
-        void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
+        void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
     }
     public sealed class LocaleList : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static bool MatchesLanguageAndScript(Locale supported, Locale desired);
     }
     public sealed class Parcel : Object {
+        public Object? CreateFixedArray(Class cls, IParcelableCreator c, params int[] dimensions);
+        public Object? CreateFixedArray(Class cls, IFunction asInterface, params int[] dimensions);
+        public Object? CreateFixedArray(Class cls, params int[] dimensions);
+        public Object[]? CreateInterfaceArray(IIntFunction newArray, IFunction asInterface);
+        public IList? CreateInterfaceArrayList(IFunction asInterface);
+        public void EnforceNoDataAvail();
+        public bool InvokeHasFileDescriptors(int offset, int length);
+        public static Parcel Obtain(IBinder binder);
+        public Object[]? ReadArray(ClassLoader? loader, Class clazz);
+        public IList ReadArrayList(ClassLoader loader, Class clazz);
+        public byte[] ReadBlob();
+        public void ReadFixedArray(Object val);
+        public void ReadFixedArray(Object val, IParcelableCreator c);
+        public void ReadFixedArray(Object val, IFunction asInterface);
+        public IDictionary? ReadHashMap(ClassLoader? loader, Class clazzKey, Class clazzValue);
+        public void ReadInterfaceArray(Object[] val, IFunction asInterface);
+        public void ReadInterfaceList(IList list, IFunction asInterface);
+        public void ReadList(IList outVal, ClassLoader? loader, Class clazz);
+        public void ReadMap(IDictionary outVal, ClassLoader? loader, Class clazzKey, Class clazzValue);
+        public Object ReadParcelable(ClassLoader loader, Class clazz);
+        public Object[]? ReadParcelableArray(ClassLoader? loader, Class clazz);
+        public IParcelableCreator ReadParcelableCreator(ClassLoader loader, Class clazz);
+        public IList ReadParcelableList(IList list, ClassLoader? cl, Class clazz);
+        public Object ReadSerializable(ClassLoader loader, Class clazz);
+        public SparseArray ReadSparseArray(ClassLoader loader, Class clazz);
+        public void SetPropagateAllowBlocking();
+        public void WriteBlob(byte[] b);
+        public void WriteBlob(byte[] b, int offset, int len);
+        public void WriteFixedArray(Object? val, int parcelableFlags, params int[] dimensions);
+        public void WriteInterfaceArray(Object[]? val);
+        public void WriteInterfaceList(IList val);
     }
     public class PowerManager : Object {
+        public const string ActionDeviceLightIdleModeChanged = "android.os.action.LIGHT_DEVICE_IDLE_MODE_CHANGED";
+        public const string ActionLowPowerStandbyEnabledChanged = "android.os.action.LOW_POWER_STANDBY_ENABLED_CHANGED";
+        public virtual bool IsDeviceLightIdleMode { get; }
+        public virtual bool IsLowPowerStandbyEnabled { get; }
+        public interface IWakeLockStateListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnStateChanged(bool enabled);
+        }
         public class WakeLock : Object {
+            public virtual void SetStateListener(IExecutor executor, PowerManager.IWakeLockStateListener? listener);
         }
+        public class WakeLockStateEventArgs : EventArgs {
+            public WakeLockStateEventArgs(bool enabled);
+            public bool Enabled { get; }
+        }
     }
     public class Process : Object {
+        public static bool IsSdkSandbox { get; }
+        public static long StartRequestedElapsedRealtime { get; }
+        public static long StartRequestedUptimeMillis { get; }
+        public static string MyProcessName();
     }
     public sealed class SharedMemory : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static SharedMemory FromFileDescriptor(ParcelFileDescriptor fd);
     }
     public class UserManager : Object {
+        public const string DisallowAddWifiConfig = "no_add_wifi_config";
+        public const string DisallowChangeWifiState = "no_change_wifi_state";
+        public const string DisallowSharingAdminConfiguredWifi = "no_sharing_admin_configured_wifi";
+        public const string DisallowWifiDirect = "no_wifi_direct";
+        public const string DisallowWifiTethering = "no_wifi_tethering";
+        public virtual bool IsProfile { get; }
     }
     public sealed class VibrationAttributes : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const VibrationAttributesUsageClass UsageClassMedia = VibrationAttributesUsageClass.Media;
+        public const VibrationAttributesUsageType UsageAccessibility = VibrationAttributesUsageType.Accessibility;
+        public const VibrationAttributesUsageType UsageMedia = VibrationAttributesUsageType.Media;
+        public static VibrationAttributes CreateForUsage(int usage);
         public sealed class Builder : Object {
+            public Builder(AudioAttributes audio);
         }
     }
     public enum VibrationAttributesUsageClass {
+        Media = 3,
     }
     public enum VibrationAttributesUsageType {
+        Accessibility = 66,
+        Media = 19,
     }
     public abstract class VibrationEffect : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
-        public abstract void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
+        public abstract void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
     }
     public abstract class Vibrator : Object {
+        public virtual void Vibrate(VibrationEffect vibe, VibrationAttributes attributes);
     }
 }

Android.OS.Ext

+namespace Android.OS.Ext {
+    public class SdkExtensions : Object {
+        protected SdkExtensions(IntPtr javaReference, JniHandleOwnership transfer);
+        public static IDictionary<Integer, Integer> AllExtensionVersions { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public static int GetExtensionVersion(int extension);
+    }
+}

Android.OS.Storage

 namespace Android.OS.Storage {
     public class StorageManager : Object {
+        public virtual IList<StorageVolume> StorageVolumesIncludingSharedProfiles { get; }
     }
     public sealed class StorageVolume : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public UserHandle Owner { get; }
     }
 }

Android.Print

 namespace Android.Print {
     public sealed class PrintManager : Object {
+        public bool IsPrintServiceEnabled(ComponentName service);
     }
 }

Android.Provider

 namespace Android.Provider {
     public enum CallerPresentation {
+        Unavailable = 5,
     }
     public class CallLog : Object {
         public class Calls : Object {
+            public const CallerPresentation PresentationUnavailable = CallerPresentation.Unavailable;
         }
     }
+    public enum CloudMediaPlaybackState {
+        Buffering = 1,
+        Completed = 5,
+        ErrorPermanentFailure = 7,
+        ErrorRetriableFailure = 6,
+        MediaSizeChanged = 8,
+        Paused = 4,
+        Ready = 2,
+        Started = 3,
+    }
+    public abstract class CloudMediaProvider : ContentProvider {
+        public CloudMediaProvider();
+        protected CloudMediaProvider(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed override void AttachInfo(Context context, ProviderInfo info);
+        public sealed override Bundle Call(string method, string? arg, Bundle? extras);
+        public sealed override Uri Canonicalize(Uri uri);
+        public sealed override int Delete(Uri uri, string? selection, string[]? selectionArgs);
+        public sealed override string GetType(Uri uri);
+        public sealed override Uri Insert(Uri uri, ContentValues values);
+        public virtual CloudMediaProvider.CloudMediaSurfaceController? OnCreateCloudMediaSurfaceController(Bundle config, CloudMediaProvider.CloudMediaSurfaceStateChangedCallback callback);
+        public abstract Bundle OnGetMediaCollectionInfo(Bundle extras);
+        public abstract ParcelFileDescriptor OnOpenMedia(string mediaId, Bundle? extras, CancellationSignal? signal);
+        public abstract AssetFileDescriptor OnOpenPreview(string mediaId, Point size, Bundle? extras, CancellationSignal? signal);
+        public virtual ICursor OnQueryAlbums(Bundle extras);
+        public abstract ICursor OnQueryDeletedMedia(Bundle extras);
+        public abstract ICursor OnQueryMedia(Bundle extras);
+        public sealed override ParcelFileDescriptor OpenFile(Uri uri, string mode);
+        public sealed override ParcelFileDescriptor OpenFile(Uri uri, string mode, CancellationSignal? signal);
+        public sealed override AssetFileDescriptor OpenTypedAssetFile(Uri uri, string mimeTypeFilter, Bundle? opts);
+        public sealed override AssetFileDescriptor OpenTypedAssetFile(Uri uri, string mimeTypeFilter, Bundle? opts, CancellationSignal? signal);
+        public sealed override ICursor Query(Uri uri, string[]? projection, Bundle? queryArgs, CancellationSignal? cancellationSignal);
+        public sealed override ICursor Query(Uri uri, string[]? projection, string? selection, string[]? selectionArgs, string? sortOrder);
+        public sealed override ICursor Query(Uri uri, string[]? projection, string? selection, string[]? selectionArgs, string? sortOrder, CancellationSignal? cancellationSignal);
+        public sealed override int Update(Uri uri, ContentValues values, string? selection, string[]? selectionArgs);
+        public abstract class CloudMediaSurfaceController : Object {
+            public CloudMediaSurfaceController();
+            protected CloudMediaSurfaceController(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public abstract void OnConfigChange(Bundle config);
+            public abstract void OnDestroy();
+            public abstract void OnMediaPause(int surfaceId);
+            public abstract void OnMediaPlay(int surfaceId);
+            public abstract void OnMediaSeekTo(int surfaceId, long timestampMillis);
+            public abstract void OnPlayerCreate();
+            public abstract void OnPlayerRelease();
+            public abstract void OnSurfaceChanged(int surfaceId, int format, int width, int height);
+            public abstract void OnSurfaceCreated(int surfaceId, Surface surface, string mediaId);
+            public abstract void OnSurfaceDestroyed(int surfaceId);
+        }
+        public sealed class CloudMediaSurfaceStateChangedCallback : Object {
+            public const CloudMediaPlaybackState PlaybackStateBuffering = CloudMediaPlaybackState.Buffering;
+            public const CloudMediaPlaybackState PlaybackStateCompleted = CloudMediaPlaybackState.Completed;
+            public const CloudMediaPlaybackState PlaybackStateErrorPermanentFailure = CloudMediaPlaybackState.ErrorPermanentFailure;
+            public const CloudMediaPlaybackState PlaybackStateErrorRetriableFailure = CloudMediaPlaybackState.ErrorRetriableFailure;
+            public const CloudMediaPlaybackState PlaybackStateMediaSizeChanged = CloudMediaPlaybackState.MediaSizeChanged;
+            public const CloudMediaPlaybackState PlaybackStatePaused = CloudMediaPlaybackState.Paused;
+            public const CloudMediaPlaybackState PlaybackStateReady = CloudMediaPlaybackState.Ready;
+            public const CloudMediaPlaybackState PlaybackStateStarted = CloudMediaPlaybackState.Started;
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public void SetPlaybackState(int surfaceId, int playbackState, Bundle? playbackStateInfo);
+        }
+    }
+    public sealed class CloudMediaProviderContract : Object {
+        public const string ExtraAlbumId = "android.provider.extra.ALBUM_ID";
+        public const string ExtraLoopingPlaybackEnabled = "android.provider.extra.LOOPING_PLAYBACK_ENABLED";
+        public const string ExtraMediaCollectionId = "android.provider.extra.MEDIA_COLLECTION_ID";
+        public const string ExtraPageToken = "android.provider.extra.PAGE_TOKEN";
+        public const string ExtraPreviewThumbnail = "android.provider.extra.PREVIEW_THUMBNAIL";
+        public const string ExtraSurfaceControllerAudioMuteEnabled = "android.provider.extra.SURFACE_CONTROLLER_AUDIO_MUTE_ENABLED";
+        public const string ExtraSyncGeneration = "android.provider.extra.SYNC_GENERATION";
+        public const string ManageCloudMediaProvidersPermission = "com.android.providers.media.permission.MANAGE_CLOUD_MEDIA_PROVIDERS";
+        public const string ProviderInterface = "android.content.action.CLOUD_MEDIA_PROVIDER";
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class AlbumColumns : Object {
+            public const string DateTakenMillis = "date_taken_millis";
+            public const string DisplayName = "display_name";
+            public const string Id = "id";
+            public const string MediaCount = "album_media_count";
+            public const string MediaCoverId = "album_media_cover_id";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class MediaCollectionInfo : Object {
+            public const string AccountConfigurationIntent = "account_configuration_intent";
+            public const string AccountName = "account_name";
+            public const string LastMediaSyncGeneration = "last_media_sync_generation";
+            public const string MediaCollectionId = "media_collection_id";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class MediaColumns : Object {
+            public const CloudMediaStandardMimeTypeExtension StandardMimeTypeExtensionAnimatedWebp = CloudMediaStandardMimeTypeExtension.AnimatedWebp;
+            public const CloudMediaStandardMimeTypeExtension StandardMimeTypeExtensionGif = CloudMediaStandardMimeTypeExtension.Gif;
+            public const CloudMediaStandardMimeTypeExtension StandardMimeTypeExtensionMotionPhoto = CloudMediaStandardMimeTypeExtension.MotionPhoto;
+            public const CloudMediaStandardMimeTypeExtension StandardMimeTypeExtensionNone = CloudMediaStandardMimeTypeExtension.None;
+            public const string DateTakenMillis = "date_taken_millis";
+            public const string DurationMillis = "duration_millis";
+            public const string Id = "id";
+            public const string IsFavorite = "is_favorite";
+            public const string MediaStoreUri = "media_store_uri";
+            public const string MimeType = "mime_type";
+            public const string SizeBytes = "size_bytes";
+            public const string StandardMimeTypeExtension = "standard_mime_type_extension";
+            public const string SyncGeneration = "sync_generation";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+    }
+    public enum CloudMediaStandardMimeTypeExtension {
+        AnimatedWebp = 3,
+        Gif = 1,
+        MotionPhoto = 2,
+        None = 0,
+    }
     public sealed class ContactsContract : Object {
         public sealed class Settings : Object {
+            public const string ActionSetDefaultAccount = "android.provider.action.SET_DEFAULT_ACCOUNT";
+            public static Account? GetDefaultAccount(ContentResolver resolver);
         }
     }
     public sealed class MediaStore : Object {
+        public const string ActionPickImages = "android.provider.action.PICK_IMAGES";
+        public const string ActionPickImagesSettings = "android.provider.action.PICK_IMAGES_SETTINGS";
+        public const string ExtraPickImagesMax = "android.provider.extra.PICK_IMAGES_MAX";
+        public static int PickImagesMaxLimit { get; }
+        public static bool IsCurrentCloudMediaProviderAuthority(ContentResolver resolver, string authority);
+        public static bool IsSupportedCloudMediaProviderAuthority(ContentResolver resolver, string authority);
+        public static void NotifyCloudMediaChangedEvent(ContentResolver resolver, string authority, string currentMediaCollectionId);
+        public class PickerMediaColumns : Object {
+            public const string Data = "_data";
+            public const string DateTaken = "datetaken";
+            public const string DisplayName = "_display_name";
+            public const string DurationMillis = "duration";
+            public const string MimeType = "mime_type";
+            public const string Size = "_size";
+            protected PickerMediaColumns(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
     }
     public sealed class Settings : Object {
+        public const SupervisorVerificationSetting SupervisorVerificationSettingBiometrics = SupervisorVerificationSetting.Biometrics;
+        public const SupervisorVerificationSetting SupervisorVerificationSettingUnknown = SupervisorVerificationSetting.Unknown;
+        public const string ActionAllAppsNotificationSettings = "android.settings.ALL_APPS_NOTIFICATION_SETTINGS";
+        public const string ActionAppLocaleSettings = "android.settings.APP_LOCALE_SETTINGS";
+        public const string ActionManageSupervisorRestrictedSetting = "android.settings.MANAGE_SUPERVISOR_RESTRICTED_SETTING";
+        public const string ExtraSupervisorRestrictedSettingKey = "android.provider.extra.SUPERVISOR_RESTRICTED_SETTING_KEY";
     }
+    public enum SupervisorVerificationSetting {
+        Biometrics = 1,
+        Unknown = 0,
+    }
 }

Android.Security

 namespace Android.Security {
+    public class KeyStoreException : Exception {
+        public const KeyStoreExceptionError ErrorAttestationChallengeTooLarge = KeyStoreExceptionError.AttestationChallengeTooLarge;
+        public const KeyStoreExceptionError ErrorAttestationKeysUnavailable = KeyStoreExceptionError.AttestationKeysUnavailable;
+        public const KeyStoreExceptionError ErrorIdAttestationFailure = KeyStoreExceptionError.IdAttestationFailure;
+        public const KeyStoreExceptionError ErrorIncorrectUsage = KeyStoreExceptionError.IncorrectUsage;
+        public const KeyStoreExceptionError ErrorInternalSystemError = KeyStoreExceptionError.InternalSystemError;
+        public const KeyStoreExceptionError ErrorKeyCorrupted = KeyStoreExceptionError.KeyCorrupted;
+        public const KeyStoreExceptionError ErrorKeyDoesNotExist = KeyStoreExceptionError.KeyDoesNotExist;
+        public const KeyStoreExceptionError ErrorKeymintFailure = KeyStoreExceptionError.KeymintFailure;
+        public const KeyStoreExceptionError ErrorKeyNotTemporallyValid = KeyStoreExceptionError.KeyNotTemporallyValid;
+        public const KeyStoreExceptionError ErrorKeyOperationExpired = KeyStoreExceptionError.KeyOperationExpired;
+        public const KeyStoreExceptionError ErrorKeystoreFailure = KeyStoreExceptionError.KeystoreFailure;
+        public const KeyStoreExceptionError ErrorKeystoreUninitialized = KeyStoreExceptionError.KeystoreUninitialized;
+        public const KeyStoreExceptionError ErrorOther = KeyStoreExceptionError.Other;
+        public const KeyStoreExceptionError ErrorPermissionDenied = KeyStoreExceptionError.PermissionDenied;
+        public const KeyStoreExceptionError ErrorUnimplemented = KeyStoreExceptionError.Unimplemented;
+        public const KeyStoreExceptionError ErrorUserAuthenticationRequired = KeyStoreExceptionError.UserAuthenticationRequired;
+        public const KeyStoreExceptionRetry RetryNever = KeyStoreExceptionRetry.Never;
+        public const KeyStoreExceptionRetry RetryWhenConnectivityAvailable = KeyStoreExceptionRetry.WhenConnectivityAvailable;
+        public const KeyStoreExceptionRetry RetryWithExponentialBackoff = KeyStoreExceptionRetry.WithExponentialBackoff;
+        protected KeyStoreException(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual bool IsSystemError { get; }
+        public virtual bool IsTransientFailure { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual int NumericErrorCode { get; }
+        public virtual int RetryPolicy { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual bool RequiresUserAuthentication();
+    }
+    public enum KeyStoreExceptionError {
+        AttestationChallengeTooLarge = 9,
+        AttestationKeysUnavailable = 16,
+        IdAttestationFailure = 8,
+        IncorrectUsage = 13,
+        InternalSystemError = 4,
+        KeyCorrupted = 7,
+        KeyDoesNotExist = 6,
+        KeymintFailure = 10,
+        KeyNotTemporallyValid = 14,
+        KeyOperationExpired = 15,
+        KeystoreFailure = 11,
+        KeystoreUninitialized = 3,
+        Other = 1,
+        PermissionDenied = 5,
+        Unimplemented = 12,
+        UserAuthenticationRequired = 2,
+    }
+    public enum KeyStoreExceptionRetry {
+        Never = 1,
+        Unknown = 0,
+        WhenConnectivityAvailable = 3,
+        WithExponentialBackoff = 2,
+    }
 }

Android.Security.Identity

 namespace Android.Security.Identity {
+    public class CredentialDataRequest : Object {
+        protected CredentialDataRequest(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual IDictionary<string, ICollection<string>> DeviceSignedEntriesToRequest { get; }
+        public virtual bool IsAllowUsingExhaustedKeys { get; }
+        public virtual bool IsAllowUsingExpiredKeys { get; }
+        public virtual bool IsIncrementUseCount { get; }
+        public virtual IDictionary<string, ICollection<string>> IssuerSignedEntriesToRequest { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual byte[]? GetReaderSignature();
+        public virtual byte[]? GetRequestMessage();
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public CredentialDataRequest Build();
+            public CredentialDataRequest.Builder SetAllowUsingExhaustedKeys(bool allowUsingExhaustedKeys);
+            public CredentialDataRequest.Builder SetAllowUsingExpiredKeys(bool allowUsingExpiredKeys);
+            public CredentialDataRequest.Builder SetDeviceSignedEntriesToRequest(IDictionary<string, ICollection<string>> entriesToRequest);
+            public CredentialDataRequest.Builder SetIncrementUseCount(bool incrementUseCount);
+            public CredentialDataRequest.Builder SetIssuerSignedEntriesToRequest(IDictionary<string, ICollection<string>> entriesToRequest);
+            public CredentialDataRequest.Builder SetReaderSignature(byte[] readerSignature);
+            public CredentialDataRequest.Builder SetRequestMessage(byte[] requestMessage);
+        }
+    }
+    public abstract class CredentialDataResult : Object {
+        protected CredentialDataResult(IntPtr javaReference, JniHandleOwnership transfer);
+        public abstract CredentialDataResult.IEntries DeviceSignedEntries { get; }
+        public abstract CredentialDataResult.IEntries IssuerSignedEntries { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public abstract byte[]? GetDeviceMac();
+        public abstract byte[] GetDeviceNameSpaces();
+        public abstract byte[] GetStaticAuthenticationData();
+        public interface IEntries : IDisposable, IJavaObject, IJavaPeerable {
+            ICollection<string> Namespaces { get; }
+            byte[]? GetEntry(string namespaceName, string name);
+            ICollection<string> GetEntryNames(string namespaceName);
+            ICollection<string> GetRetrievedEntryNames(string namespaceName);
+            int GetStatus(string namespaceName, string name);
+        }
+    }
+    public enum CredentialEntriesStatus {
+        NoAccessControlProfiles = 6,
+        NoSuchEntry = 1,
+        NotInRequestMessage = 3,
+        NotRequested = 2,
+        Ok = 0,
+        ReaderAuthenticationFailed = 5,
+        UserAuthenticationFailed = 4,
+    }
     public abstract class IdentityCredentialStore : Object {
+        public virtual PresentationSession CreatePresentationSession(int cipherSuite);
     }
+    public abstract class PresentationSession : Object {
+        protected PresentationSession(IntPtr javaReference, JniHandleOwnership transfer);
+        public abstract KeyPair EphemeralKeyPair { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public abstract CredentialDataResult? GetCredentialData(string credentialName, CredentialDataRequest request);
+        public abstract void SetReaderEphemeralPublicKey(IPublicKey readerEphemeralPublicKey);
+        public abstract void SetSessionTranscript(byte[] sessionTranscript);
+    }
 }

Android.Service.Autofill

 namespace Android.Service.Autofill {
     public enum AutofillResponseFlags {
+        DelayFill = 4,
     }
     public abstract class AutofillService : Service {
+        public const string ExtraFillResponse = "android.service.autofill.extra.FILL_RESPONSE";
     }
     public sealed class Dataset : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public sealed class Builder : Object {
+            public Builder(Presentations presentations);
+            public Dataset.Builder SetField(AutofillId id, Field? field);
         }
     }
+    public enum EventUIType {
+        Dialog = 3,
+        Inline = 2,
+        Menu = 1,
+        Unknown = 0,
+    }
+    public sealed class Field : Object {
+        public Pattern? Filter { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public Presentations? Presentations { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public AutofillValue? Value { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public Field Build();
+            public Field.Builder SetFilter(Pattern? value);
+            public Field.Builder SetPresentations(Presentations value);
+            public Field.Builder SetValue(AutofillValue value);
+        }
+    }
     public sealed class FillEventHistory : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public sealed class Event : Object {
+            public const EventUIType UiTypeDialog = EventUIType.Dialog;
+            public const EventUIType UiTypeInline = EventUIType.Inline;
+            public const EventUIType UiTypeMenu = EventUIType.Menu;
+            public const EventUIType UiTypeUnknown = EventUIType.Unknown;
+            public int UiType { get; }
         }
     }
     public sealed class FillRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const int FlagSupportsFillDialog = 64;
+        public IntentSender? DelayedFillIntentSender { get; }
     }
     public sealed class FillResponse : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const AutofillResponseFlags FlagDelayFill = AutofillResponseFlags.DelayFill;
         public sealed class Builder : Object {
+            public FillResponse.Builder SetAuthentication(AutofillId[] ids, IntentSender? authentication, Presentations? presentations);
+            public FillResponse.Builder SetDialogHeader(RemoteViews header);
+            public FillResponse.Builder SetFillDialogTriggerIds(params AutofillId[] ids);
         }
     }
+    public sealed class Presentations : Object {
+        public RemoteViews DialogPresentation { get; }
+        public InlinePresentation InlinePresentation { get; }
+        public InlinePresentation InlineTooltipPresentation { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public RemoteViews MenuPresentation { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public Presentations Build();
+            public Presentations.Builder SetDialogPresentation(RemoteViews value);
+            public Presentations.Builder SetInlinePresentation(InlinePresentation value);
+            public Presentations.Builder SetInlineTooltipPresentation(InlinePresentation value);
+            public Presentations.Builder SetMenuPresentation(RemoteViews value);
+        }
+    }
 }

Android.Service.Carrier

 namespace Android.Service.Carrier {
     public abstract class CarrierService : Service {
+        public void NotifyCarrierNetworkChange(int subscriptionId, bool active);
+        public virtual PersistableBundle? OnLoadConfig(int subscriptionId, CarrierIdentifier? id);
     }
 }

Android.Service.Controls

 namespace Android.Service.Controls {
     public sealed class Control : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public bool IsAuthRequired { get; }
         public sealed class StatefulBuilder : Object {
+            public Control.StatefulBuilder SetAuthRequired(bool authRequired);
         }
     }
 }

Android.Service.Notification

 namespace Android.Service.Notification {
     public enum NotificationCancelReason {
+        AssistantCancel = 22,
     }
     public abstract class NotificationListenerService : Service {
+        public const NotificationCancelReason ReasonAssistantCancel = NotificationCancelReason.AssistantCancel;
     }
 }

Android.Service.QuickAccessWallet

 namespace Android.Service.QuickAccessWallet {
     public abstract class QuickAccessWalletService : Service {
+        public virtual PendingIntent? TargetActivityPendingIntent { get; }
     }
 }

Android.Speech

 namespace Android.Speech {
     public interface IRecognitionListener : IDisposable, IJavaObject, IJavaPeerable {
+        void OnEndOfSegmentedSession();
+        void OnSegmentResults(Bundle segmentResults);
     }
+    public interface IRecognitionSupportCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnError(int error);
+        void OnSupportResult(RecognitionSupport recognitionSupport);
+    }
     public abstract class RecognitionService : Service {
+        public virtual void OnCheckRecognitionSupport(Intent recognizerIntent, RecognitionService.SupportCallback supportCallback);
+        public virtual void OnTriggerModelDownload(Intent recognizerIntent);
         public class Callback : Object {
+            public virtual void EndOfSegmentedSession();
+            public virtual void SegmentResults(Bundle results);
         }
+        public class SupportCallback : Object {
+            protected SupportCallback(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual void OnError(int errorCode);
+            public virtual void OnSupportResult(RecognitionSupport recognitionSupport);
+        }
     }
+    public sealed class RecognitionSupport : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public IList<string> InstalledOnDeviceLanguages { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<string> OnlineLanguages { get; }
+        public IList<string> PendingOnDeviceLanguages { get; }
+        public IList<string> SupportedOnDeviceLanguages { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public RecognitionSupport.Builder AddInstalledOnDeviceLanguage(string value);
+            public RecognitionSupport.Builder AddOnlineLanguage(string value);
+            public RecognitionSupport.Builder AddPendingOnDeviceLanguage(string value);
+            public RecognitionSupport.Builder AddSupportedOnDeviceLanguage(string value);
+            public RecognitionSupport Build();
+            public RecognitionSupport.Builder SetInstalledOnDeviceLanguages(IList<string> value);
+            public RecognitionSupport.Builder SetOnlineLanguages(IList<string> value);
+            public RecognitionSupport.Builder SetPendingOnDeviceLanguages(IList<string> value);
+            public RecognitionSupport.Builder SetSupportedOnDeviceLanguages(IList<string> value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public class RecognizerIntent : Object {
+        public const string ExtraAudioSource = "android.speech.extra.AUDIO_SOURCE";
+        public const string ExtraAudioSourceChannelCount = "android.speech.extra.AUDIO_SOURCE_CHANNEL_COUNT";
+        public const string ExtraAudioSourceEncoding = "android.speech.extra.AUDIO_SOURCE_ENCODING";
+        public const string ExtraAudioSourceSamplingRate = "android.speech.extra.AUDIO_SOURCE_SAMPLING_RATE";
+        public const string ExtraBiasingStrings = "android.speech.extra.BIASING_STRINGS";
+        public const string ExtraEnableBiasingDeviceContext = "android.speech.extra.ENABLE_BIASING_DEVICE_CONTEXT";
+        public const string ExtraEnableFormatting = "android.speech.extra.ENABLE_FORMATTING";
+        public const string ExtraHidePartialTrailingPunctuation = "android.speech.extra.HIDE_PARTIAL_TRAILING_PUNCTUATION";
+        public const string ExtraMaskOffensiveWords = "android.speech.extra.MASK_OFFENSIVE_WORDS";
+        public const string ExtraSegmentedSession = "android.speech.extra.SEGMENTED_SESSION";
+        public const string FormattingOptimizeLatency = "latency";
+        public const string FormattingOptimizeQuality = "quality";
     }
+    public class SegmentResultsEventArgs : EventArgs {
+        public SegmentResultsEventArgs(Bundle segmentResults);
+        public Bundle SegmentResults { get; }
+    }
     public class SpeechRecognizer : Object {
+        public const SpeechRecognizerError ErrorCannotCheckSupport = SpeechRecognizerError.CannotCheckSupport;
+        public event EventHandler EndOfSegmentedSession;
+        public event EventHandler<SegmentResultsEventArgs> SegmentResults;
+        public virtual void CheckRecognitionSupport(Intent recognizerIntent, IExecutor executor, IRecognitionSupportCallback supportListener);
+        public virtual void TriggerModelDownload(Intent recognizerIntent);
     }
     public enum SpeechRecognizerError {
+        CannotCheckSupport = 14,
     }
 }

Android.Systems

 namespace Android.Systems {
+    public sealed class SystemCleaner : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public static Cleaner Cleaner();
+    }
+    public sealed class VmSocketAddress : SocketAddress {
+        public VmSocketAddress(int svmPort, int svmCid);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int SvmCid { get; }
+        public int SvmPort { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
 }

Android.Telecom

 namespace Android.Telecom {
     public sealed class Call : Object {
         public class Details : Object {
+            public const CallCapability CapabilityRemotePartySupportsRtt = CallCapability.RemotePartySupportsRtt;
         }
     }
     public enum CallCapability {
+        RemotePartySupportsRtt = 268435456,
     }
     public abstract class CallRedirectionService : Service {
+        public virtual void OnRedirectionTimeout();
     }
     public abstract class Connection : Conferenceable {
+        public const ConnectionCapability CapabilityRemotePartySupportsRtt = ConnectionCapability.RemotePartySupportsRtt;
+        public const string ExtraLastKnownCellIdentity = "android.telecom.extra.LAST_KNOWN_CELL_IDENTITY";
     }
     public enum ConnectionCapability {
+        RemotePartySupportsRtt = 536870912,
     }
     public sealed class PhoneAccount : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const PhoneAccountCapability CapabilitySupportsVoiceCallingIndications = PhoneAccountCapability.SupportsVoiceCallingIndications;
+        public const PhoneAccountCapability CapabilityVoiceCallingAvailable = PhoneAccountCapability.VoiceCallingAvailable;
     }
     public enum PhoneAccountCapability {
+        SupportsVoiceCallingIndications = 65536,
+        VoiceCallingAvailable = 131072,
     }
     public enum Presentation {
+        Unavailable = 5,
     }
     public class TelecomManager : Object {
+        public const Presentation PresentationUnavailable = Presentation.Unavailable;
+        public virtual IList<PhoneAccountHandle> OwnSelfManagedPhoneAccounts { get; }
-        public virtual IList<PhoneAccountHandle>? SelfManagedPhoneAccounts { get; }
+        public virtual IList<PhoneAccountHandle> SelfManagedPhoneAccounts { get; }
     }
 }

Android.Telephony

 namespace Android.Telephony {
+    public enum AllowedNetworkTypesReason {
+        Carrier = 2,
+        User = 0,
+    }
     public sealed class AvailableNetworkInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public IList<RadioAccessSpecifier> RadioAccessSpecifiers { get; }
+        public sealed class Builder : Object {
+            public Builder(int subId);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public AvailableNetworkInfo Build();
+            public AvailableNetworkInfo.Builder SetMccMncs(IList<string> mccMncs);
+            public AvailableNetworkInfo.Builder SetPriority(int priority);
+            public AvailableNetworkInfo.Builder SetRadioAccessSpecifiers(IList<RadioAccessSpecifier> radioAccessSpecifiers);
+        }
     }
     public class CarrierConfigManager : Object {
+        public const string KeyCarrierSupportsOppDataAutoProvisioningBool = "carrier_supports_opp_data_auto_provisioning_bool";
+        public const string KeyCarrierSupportsTetheringBool = "carrier_supports_tethering_bool";
+        public const string KeyCellularUsageSettingInt = "cellular_usage_setting_int";
+        public const string KeyEnableCrossSimCallingOnOpportunisticDataBool = "enable_cross_sim_calling_on_opportunistic_data_bool";
+        public const string KeyEsimDownloadRetryBackoffTimerSecInt = "esim_download_retry_backoff_timer_sec_int";
+        public const string KeyEsimMaxDownloadRetryAttemptsInt = "esim_max_download_retry_attempts_int";
+        public const string KeyIsOpportunisticSubscriptionBool = "is_opportunistic_subscription_bool";
+        public const string KeySmdpServerAddressString = "smdp_server_address_string";
+        public const string KeySubscriptionGroupUuidString = "subscription_group_uuid_string";
+        public const string RemoveGroupUuidString = "00000000-0000-0000-0000-000000000000";
+        public sealed class Bsf : Object {
+            public const string KeyBsfServerFqdnString = "bsf.bsf_server_fqdn_string";
+            public const string KeyBsfServerPortInt = "bsf.bsf_server_port_int";
+            public const string KeyBsfTransportTypeInt = "bsf.bsf_transport_type_int";
+            public const string KeyPrefix = "bsf.";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
         public sealed class Ims : Object {
+            public const ImsGeolocationPidfFor GeolocationPidfForEmergencyOnCellular = ImsGeolocationPidfFor.EmergencyOnCellular;
+            public const ImsGeolocationPidfFor GeolocationPidfForEmergencyOnWifi = ImsGeolocationPidfFor.EmergencyOnWifi;
+            public const ImsGeolocationPidfFor GeolocationPidfForNonEmergencyOnCellular = ImsGeolocationPidfFor.NonEmergencyOnCellular;
+            public const ImsGeolocationPidfFor GeolocationPidfForNonEmergencyOnWifi = ImsGeolocationPidfFor.NonEmergencyOnWifi;
+            public const ImsIpsecAuthenticationAlgorithm IpsecAuthenticationAlgorithmHmacMd5 = ImsIpsecAuthenticationAlgorithm.HmacMd5;
+            public const ImsIpsecAuthenticationAlgorithm IpsecAuthenticationAlgorithmHmacSha1 = ImsIpsecAuthenticationAlgorithm.HmacSha1;
+            public const ImsIpsecEncryptionAlgorithm IpsecEncryptionAlgorithmAesCbc = ImsIpsecEncryptionAlgorithm.AesCbc;
+            public const ImsIpsecEncryptionAlgorithm IpsecEncryptionAlgorithmDesEde3Cbc = ImsIpsecEncryptionAlgorithm.DesEde3Cbc;
+            public const ImsIpsecEncryptionAlgorithm IpsecEncryptionAlgorithmNull = ImsIpsecEncryptionAlgorithm.Null;
+            public const ImsNetworkType NetworkTypeHome = ImsNetworkType.Home;
+            public const ImsNetworkType NetworkTypeRoaming = ImsNetworkType.Roaming;
+            public const ImsPreferredTransport PreferredTransportDynamicUdpTcp = ImsPreferredTransport.DynamicUdpTcp;
+            public const ImsPreferredTransport PreferredTransportTcp = ImsPreferredTransport.Tcp;
+            public const ImsPreferredTransport PreferredTransportTls = ImsPreferredTransport.Tls;
+            public const ImsPreferredTransport PreferredTransportUdp = ImsPreferredTransport.Udp;
+            public const ImsRequestUriFormat RequestUriFormatSip = ImsRequestUriFormat.Sip;
+            public const ImsRequestUriFormat RequestUriFormatTel = ImsRequestUriFormat.Tel;
+            public const int E911RtcpInactivityOnConnected = 3;
+            public const int E911RtpInactivityOnConnected = 4;
+            public const int RtcpInactivityOnConnected = 1;
+            public const int RtcpInactivityOnHold = 0;
+            public const int RtpInactivityOnConnected = 2;
+            public const string KeyCapabilityTypeCallComposerIntArray = "ims.capability_type_call_composer_int_array";
+            public const string KeyCapabilityTypeOptionsUceIntArray = "ims.capability_type_options_uce_int_array";
+            public const string KeyCapabilityTypePresenceUceIntArray = "ims.capability_type_presence_uce_int_array";
+            public const string KeyCapabilityTypeSmsIntArray = "ims.capability_type_sms_int_array";
+            public const string KeyCapabilityTypeUtIntArray = "ims.capability_type_ut_int_array";
+            public const string KeyCapabilityTypeVideoIntArray = "ims.capability_type_video_int_array";
+            public const string KeyCapabilityTypeVoiceIntArray = "ims.capability_type_voice_int_array";
+            public const string KeyGeolocationPidfInSipInviteSupportIntArray = "ims.geolocation_pidf_in_sip_invite_support_int_array";
+            public const string KeyGeolocationPidfInSipRegisterSupportIntArray = "ims.geolocation_pidf_in_sip_register_support_int_array";
+            public const string KeyGruuEnabledBool = "ims.gruu_enabled_bool";
+            public const string KeyImsPdnEnabledInNoVopsSupportIntArray = "ims.ims_pdn_enabled_in_no_vops_support_int_array";
+            public const string KeyImsUserAgentString = "ims.ims_user_agent_string";
+            public const string KeyIpsecAuthenticationAlgorithmsIntArray = "ims.ipsec_authentication_algorithms_int_array";
+            public const string KeyIpsecEncryptionAlgorithmsIntArray = "ims.ipsec_encryption_algorithms_int_array";
+            public const string KeyIpv4SipMtuSizeCellularInt = "ims.ipv4_sip_mtu_size_cellular_int";
+            public const string KeyIpv6SipMtuSizeCellularInt = "ims.ipv6_sip_mtu_size_cellular_int";
+            public const string KeyKeepPdnUpInNoVopsBool = "ims.keep_pdn_up_in_no_vops_bool";
+            public const string KeyMmtelRequiresProvisioningBundle = "ims.mmtel_requires_provisioning_bundle";
+            public const string KeyPhoneContextDomainNameString = "ims.phone_context_domain_name_string";
+            public const string KeyRcsRequiresProvisioningBundle = "ims.rcs_requires_provisioning_bundle";
+            public const string KeyRegistrationEventPackageSupportedBool = "ims.registration_event_package_supported_bool";
+            public const string KeyRegistrationExpiryTimerSecInt = "ims.registration_expiry_timer_sec_int";
+            public const string KeyRegistrationRetryBaseTimerMillisInt = "ims.registration_retry_base_timer_millis_int";
+            public const string KeyRegistrationRetryMaxTimerMillisInt = "ims.registration_retry_max_timer_millis_int";
+            public const string KeyRegistrationSubscribeExpiryTimerSecInt = "ims.registration_subscribe_expiry_timer_sec_int";
+            public const string KeyRequestUriTypeInt = "ims.request_uri_type_int";
+            public const string KeySipOverIpsecEnabledBool = "ims.sip_over_ipsec_enabled_bool";
+            public const string KeySipPreferredTransportInt = "ims.sip_preferred_transport_int";
+            public const string KeySipServerPortNumberInt = "ims.sip_server_port_number_int";
+            public const string KeySipTimerBMillisInt = "ims.sip_timer_b_millis_int";
+            public const string KeySipTimerCMillisInt = "ims.sip_timer_c_millis_int";
+            public const string KeySipTimerDMillisInt = "ims.sip_timer_d_millis_int";
+            public const string KeySipTimerFMillisInt = "ims.sip_timer_f_millis_int";
+            public const string KeySipTimerHMillisInt = "ims.sip_timer_h_millis_int";
+            public const string KeySipTimerJMillisInt = "ims.sip_timer_j_millis_int";
+            public const string KeySipTimerT1MillisInt = "ims.sip_timer_t1_millis_int";
+            public const string KeySipTimerT2MillisInt = "ims.sip_timer_t2_millis_int";
+            public const string KeySipTimerT4MillisInt = "ims.sip_timer_t4_millis_int";
+            public const string KeySupportedRatsIntArray = "ims.supported_rats_int_array";
+            public const string KeyUseSipUriForPresenceSubscribeBool = "ims.use_sip_uri_for_presence_subscribe_bool";
         }
+        public sealed class ImsEmergency : Object {
+            public const string KeyEmergencyCallbackModeSupportedBool = "imsemergency.emergency_callback_mode_supported_bool";
+            public const string KeyEmergencyOverImsSupportedRatsIntArray = "imsemergency.emergency_over_ims_supported_rats_int_array";
+            public const string KeyEmergencyQosPreconditionSupportedBool = "imsemergency.emergency_qos_precondition_supported_bool";
+            public const string KeyEmergencyRegistrationTimerMillisInt = "imsemergency.emergency_registration_timer_millis_int";
+            public const string KeyPrefix = "imsemergency.";
+            public const string KeyRefreshGeolocationTimeoutMillisInt = "imsemergency.refresh_geolocation_timeout_millis_int";
+            public const string KeyRetryEmergencyOnImsPdnBool = "imsemergency.retry_emergency_on_ims_pdn_bool";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class ImsRtt : Object {
+            public const string KeyPrefix = "imsrtt.";
+            public const string KeyRedPayloadTypeInt = "imsrtt.red_payload_type_int";
+            public const string KeyT140PayloadTypeInt = "imsrtt.t140_payload_type_int";
+            public const string KeyTextAsBandwidthKbpsInt = "imsrtt.text_as_bandwidth_kbps_int";
+            public const string KeyTextCodecCapabilityPayloadTypesBundle = "imsrtt.text_codec_capability_payload_types_bundle";
+            public const string KeyTextOnDefaultBearerSupportedBool = "imsrtt.text_on_default_bearer_supported_bool";
+            public const string KeyTextQosPreconditionSupportedBool = "imsrtt.text_qos_precondition_supported_bool";
+            public const string KeyTextRrBandwidthBpsInt = "imsrtt.text_rr_bandwidth_bps_int";
+            public const string KeyTextRsBandwidthBpsInt = "imsrtt.text_rs_bandwidth_bps_int";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class ImsSms : Object {
+            public const CarrierImsSmsFormat SmsFormat3gpp = CarrierImsSmsFormat.Format3gpp;
+            public const CarrierImsSmsFormat SmsFormat3gpp2 = CarrierImsSmsFormat.Format3gpp2;
+            public const string KeyPrefix = "imssms.";
+            public const string KeySmsCsfbRetryOnFailureBool = "imssms.sms_csfb_retry_on_failure_bool";
+            public const string KeySmsOverImsFormatInt = "imssms.sms_over_ims_format_int";
+            public const string KeySmsOverImsSupportedBool = "imssms.sms_over_ims_supported_bool";
+            public const string KeySmsOverImsSupportedRatsIntArray = "imssms.sms_over_ims_supported_rats_int_array";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class ImsSs : Object {
+            public const CarrierImsSupplementaryService SupplementaryServiceCbAcr = CarrierImsSupplementaryService.CbAcr;
+            public const CarrierImsSupplementaryService SupplementaryServiceCbAll = CarrierImsSupplementaryService.CbAll;
+            public const CarrierImsSupplementaryService SupplementaryServiceCbBaic = CarrierImsSupplementaryService.CbBaic;
+            public const CarrierImsSupplementaryService SupplementaryServiceCbBaoc = CarrierImsSupplementaryService.CbBaoc;
+            public const CarrierImsSupplementaryService SupplementaryServiceCbBicRoam = CarrierImsSupplementaryService.CbBicRoam;
+            public const CarrierImsSupplementaryService SupplementaryServiceCbBil = CarrierImsSupplementaryService.CbBil;
+            public const CarrierImsSupplementaryService SupplementaryServiceCbBoic = CarrierImsSupplementaryService.CbBoic;
+            public const CarrierImsSupplementaryService SupplementaryServiceCbBoicExhc = CarrierImsSupplementaryService.CbBoicExhc;
+            public const CarrierImsSupplementaryService SupplementaryServiceCbIbs = CarrierImsSupplementaryService.CbIbs;
+            public const CarrierImsSupplementaryService SupplementaryServiceCbObs = CarrierImsSupplementaryService.CbObs;
+            public const CarrierImsSupplementaryService SupplementaryServiceCfAll = CarrierImsSupplementaryService.CfAll;
+            public const CarrierImsSupplementaryService SupplementaryServiceCfAllConditonalForwarding = CarrierImsSupplementaryService.CfAllConditonalForwarding;
+            public const CarrierImsSupplementaryService SupplementaryServiceCfCfb = CarrierImsSupplementaryService.CfCfb;
+            public const CarrierImsSupplementaryService SupplementaryServiceCfCfnl = CarrierImsSupplementaryService.CfCfnl;
+            public const CarrierImsSupplementaryService SupplementaryServiceCfCfnrc = CarrierImsSupplementaryService.CfCfnrc;
+            public const CarrierImsSupplementaryService SupplementaryServiceCfCfnry = CarrierImsSupplementaryService.CfCfnry;
+            public const CarrierImsSupplementaryService SupplementaryServiceCfCfu = CarrierImsSupplementaryService.CfCfu;
+            public const CarrierImsSupplementaryService SupplementaryServiceCw = CarrierImsSupplementaryService.Cw;
+            public const CarrierImsSupplementaryService SupplementaryServiceIdentificationOip = CarrierImsSupplementaryService.IdentificationOip;
+            public const CarrierImsSupplementaryService SupplementaryServiceIdentificationOir = CarrierImsSupplementaryService.IdentificationOir;
+            public const CarrierImsSupplementaryService SupplementaryServiceIdentificationTip = CarrierImsSupplementaryService.IdentificationTip;
+            public const CarrierImsSupplementaryService SupplementaryServiceIdentificationTir = CarrierImsSupplementaryService.IdentificationTir;
+            public const string KeyNetworkInitiatedUssdOverImsSupportedBool = "imsss.network_initiated_ussd_over_ims_supported_bool";
+            public const string KeyPrefix = "imsss.";
+            public const string KeyUseCsfbOnXcapOverUtFailureBool = "imsss.use_csfb_on_xcap_over_ut_failure_bool";
+            public const string KeyUtAsServerFqdnString = "imsss.ut_as_server_fqdn_string";
+            public const string KeyUtAsServerPortInt = "imsss.ut_as_server_port_int";
+            public const string KeyUtIptypeHomeInt = "imsss.ut_iptype_home_int";
+            public const string KeyUtIptypeRoamingInt = "imsss.ut_iptype_roaming_int";
+            public const string KeyUtRequiresImsRegistrationBool = "imsss.ut_requires_ims_registration_bool";
+            public const string KeyUtServerBasedServicesIntArray = "imsss.ut_server_based_services_int_array";
+            public const string KeyUtSupportedWhenPsDataOffBool = "imsss.ut_supported_when_ps_data_off_bool";
+            public const string KeyUtSupportedWhenRoamingBool = "imsss.ut_supported_when_roaming_bool";
+            public const string KeyUtTerminalBasedServicesIntArray = "imsss.ut_terminal_based_services_int_array";
+            public const string KeyUtTransportTypeInt = "imsss.ut_transport_type_int";
+            public const string KeyXcapOverUtSupportedRatsIntArray = "imsss.xcap_over_ut_supported_rats_int_array";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class ImsVoice : Object {
+            public const ImsVoiceConferenceSubscribeType ConferenceSubscribeTypeInDialog = ImsVoiceConferenceSubscribeType.InDialog;
+            public const ImsVoiceConferenceSubscribeType ConferenceSubscribeTypeOutOfDialog = ImsVoiceConferenceSubscribeType.OutOfDialog;
+            public const ImsVoiceEvsEncodedBwType EvsEncodedBwTypeFb = ImsVoiceEvsEncodedBwType.Fb;
+            public const ImsVoiceEvsEncodedBwType EvsEncodedBwTypeNb = ImsVoiceEvsEncodedBwType.Nb;
+            public const ImsVoiceEvsEncodedBwType EvsEncodedBwTypeNbWb = ImsVoiceEvsEncodedBwType.NbWb;
+            public const ImsVoiceEvsEncodedBwType EvsEncodedBwTypeNbWbSwb = ImsVoiceEvsEncodedBwType.NbWbSwb;
+            public const ImsVoiceEvsEncodedBwType EvsEncodedBwTypeNbWbSwbFb = ImsVoiceEvsEncodedBwType.NbWbSwbFb;
+            public const ImsVoiceEvsEncodedBwType EvsEncodedBwTypeSwb = ImsVoiceEvsEncodedBwType.Swb;
+            public const ImsVoiceEvsEncodedBwType EvsEncodedBwTypeWb = ImsVoiceEvsEncodedBwType.Wb;
+            public const ImsVoiceEvsEncodedBwType EvsEncodedBwTypeWbSwb = ImsVoiceEvsEncodedBwType.WbSwb;
+            public const ImsVoiceEvsEncodedBwType EvsEncodedBwTypeWbSwbFb = ImsVoiceEvsEncodedBwType.WbSwbFb;
+            public const ImsVoiceEvsOperationalMode EvsOperationalModeAmrwbIo = ImsVoiceEvsOperationalMode.AmrwbIo;
+            public const ImsVoiceEvsOperationalMode EvsOperationalModePrimary = ImsVoiceEvsOperationalMode.Primary;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate1280Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate1280Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate132Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate132Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate164Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate164Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate244Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate244Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate320Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate320Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate480Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate480Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate59Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate59Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate640Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate640Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate72Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate72Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate80Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate80Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate960Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate960Kbps;
+            public const ImsVoiceEvsPrimaryModeBitrate EvsPrimaryModeBitrate96Kbps = ImsVoiceEvsPrimaryModeBitrate.BitRate96Kbps;
+            public const ImsVoicePayloadFormat BandwidthEfficient = ImsVoicePayloadFormat.BandwidthEfficient;
+            public const ImsVoicePayloadFormat OctetAligned = ImsVoicePayloadFormat.OctetAligned;
+            public const ImsVoiceSessionPrivacyType SessionPrivacyTypeHeader = ImsVoiceSessionPrivacyType.Header;
+            public const ImsVoiceSessionPrivacyType SessionPrivacyTypeId = ImsVoiceSessionPrivacyType.Id;
+            public const ImsVoiceSessionPrivacyType SessionPrivacyTypeNone = ImsVoiceSessionPrivacyType.None;
+            public const ImsVoiceSessionRefresherType SessionRefresherTypeUac = ImsVoiceSessionRefresherType.Uac;
+            public const ImsVoiceSessionRefresherType SessionRefresherTypeUas = ImsVoiceSessionRefresherType.Uas;
+            public const ImsVoiceSessionRefresherType SessionRefresherTypeUnknown = ImsVoiceSessionRefresherType.Unknown;
+            public const ImsVoiceSessionRefreshMethod SessionRefreshMethodInvite = ImsVoiceSessionRefreshMethod.Invite;
+            public const ImsVoiceSessionRefreshMethod SessionRefreshMethodUpdatePreferred = ImsVoiceSessionRefreshMethod.UpdatePreferred;
+            public const ImsVoiceSrvccSupport AlertingSrvccSupport = ImsVoiceSrvccSupport.AlertingSrvccSupport;
+            public const ImsVoiceSrvccSupport BasicSrvccSupport = ImsVoiceSrvccSupport.BasicSrvccSupport;
+            public const ImsVoiceSrvccSupport MidcallSrvccSupport = ImsVoiceSrvccSupport.MidcallSrvccSupport;
+            public const ImsVoiceSrvccSupport PrealertingSrvccSupport = ImsVoiceSrvccSupport.PrealertingSrvccSupport;
+            public const string KeyAmrCodecAttributeModesetIntArray = "imsvoice.amr_codec_attribute_modeset_int_array";
+            public const string KeyAmrCodecAttributePayloadFormatInt = "imsvoice.amr_codec_attribute_payload_format_int";
+            public const string KeyAmrnbPayloadDescriptionBundle = "imsvoice.amrnb_payload_description_bundle";
+            public const string KeyAmrnbPayloadTypeIntArray = "imsvoice.amrnb_payload_type_int_array";
+            public const string KeyAmrwbPayloadDescriptionBundle = "imsvoice.amrwb_payload_description_bundle";
+            public const string KeyAmrwbPayloadTypeIntArray = "imsvoice.amrwb_payload_type_int_array";
+            public const string KeyAudioAsBandwidthKbpsInt = "imsvoice.audio_as_bandwidth_kbps_int";
+            public const string KeyAudioCodecCapabilityPayloadTypesBundle = "imsvoice.audio_codec_capability_payload_types_bundle";
+            public const string KeyAudioInactivityCallEndReasonsIntArray = "imsvoice.audio_inactivity_call_end_reasons_int_array";
+            public const string KeyAudioRrBandwidthBpsInt = "imsvoice.audio_rr_bandwidth_bps_int";
+            public const string KeyAudioRsBandwidthBpsInt = "imsvoice.audio_rs_bandwidth_bps_int";
+            public const string KeyAudioRtcpInactivityTimerMillisInt = "imsvoice.audio_rtcp_inactivity_timer_millis_int";
+            public const string KeyAudioRtpInactivityTimerMillisInt = "imsvoice.audio_rtp_inactivity_timer_millis_int";
+            public const string KeyCarrierVolteRoamingAvailableBool = "imsvoice.carrier_volte_roaming_available_bool";
+            public const string KeyCodecAttributeModeChangeCapabilityInt = "imsvoice.codec_attribute_mode_change_capability_int";
+            public const string KeyCodecAttributeModeChangeNeighborInt = "imsvoice.codec_attribute_mode_change_neighbor_int";
+            public const string KeyCodecAttributeModeChangePeriodInt = "imsvoice.codec_attribute_mode_change_period_int";
+            public const string KeyConferenceFactoryUriString = "imsvoice.conference_factory_uri_string";
+            public const string KeyConferenceSubscribeTypeInt = "imsvoice.conference_subscribe_type_int";
+            public const string KeyDedicatedBearerWaitTimerMillisInt = "imsvoice.dedicated_bearer_wait_timer_millis_int";
+            public const string KeyDtmfnbPayloadTypeIntArray = "imsvoice.dtmfnb_payload_type_int_array";
+            public const string KeyDtmfwbPayloadTypeIntArray = "imsvoice.dtmfwb_payload_type_int_array";
+            public const string KeyEvsCodecAttributeBandwidthInt = "imsvoice.evs_codec_attribute_bandwidth_int";
+            public const string KeyEvsCodecAttributeBitrateIntArray = "imsvoice.evs_codec_attribute_bitrate_int_array";
+            public const string KeyEvsCodecAttributeChannelsInt = "imsvoice.evs_codec_attribute_channels_int";
+            public const string KeyEvsCodecAttributeChAwRecvInt = "imsvoice.evs_codec_attribute_ch_aw_recv_int";
+            public const string KeyEvsCodecAttributeCmrInt = "imsvoice.codec_attribute_cmr_int";
+            public const string KeyEvsCodecAttributeDtxBool = "imsvoice.evs_codec_attribute_dtx_bool";
+            public const string KeyEvsCodecAttributeDtxRecvBool = "imsvoice.evs_codec_attribute_dtx_recv_bool";
+            public const string KeyEvsCodecAttributeHfOnlyInt = "imsvoice.evs_codec_attribute_hf_only_int";
+            public const string KeyEvsCodecAttributeModeSwitchInt = "imsvoice.evs_codec_attribute_mode_switch_int";
+            public const string KeyEvsPayloadDescriptionBundle = "imsvoice.evs_payload_description_bundle";
+            public const string KeyEvsPayloadTypeIntArray = "imsvoice.evs_payload_type_int_array";
+            public const string KeyIncludeCallerIdServiceCodesInSipInviteBool = "imsvoice.include_caller_id_service_codes_in_sip_invite_bool";
+            public const string KeyMinimumSessionExpiresTimerSecInt = "imsvoice.minimum_session_expires_timer_sec_int";
+            public const string KeyMoCallRequestTimeoutMillisInt = "imsvoice.mo_call_request_timeout_millis_int";
+            public const string KeyMultiendpointSupportedBool = "imsvoice.multiendpoint_supported_bool";
+            public const string KeyOipSourceFromHeaderBool = "imsvoice.oip_source_from_header_bool";
+            public const string KeyPrackSupportedFor18xBool = "imsvoice.prack_supported_for_18x_bool";
+            public const string KeyPrefix = "imsvoice.";
+            public const string KeyRingbackTimerMillisInt = "imsvoice.ringback_timer_millis_int";
+            public const string KeyRingingTimerMillisInt = "imsvoice.ringing_timer_millis_int";
+            public const string KeySessionExpiresTimerSecInt = "imsvoice.session_expires_timer_sec_int";
+            public const string KeySessionPrivacyTypeInt = "imsvoice.session_privacy_type_int";
+            public const string KeySessionRefresherTypeInt = "imsvoice.session_refresher_type_int";
+            public const string KeySessionRefreshMethodInt = "imsvoice.session_refresh_method_int";
+            public const string KeySessionTimerSupportedBool = "imsvoice.session_timer_supported_bool";
+            public const string KeySrvccTypeIntArray = "imsvoice.srvcc_type_int_array";
+            public const string KeyVoiceOnDefaultBearerSupportedBool = "imsvoice.voice_on_default_bearer_supported_bool";
+            public const string KeyVoiceQosPreconditionSupportedBool = "imsvoice.voice_qos_precondition_supported_bool";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class ImsVt : Object {
+            public const string KeyH264PayloadDescriptionBundle = "imsvt.h264_payload_description_bundle";
+            public const string KeyH264PayloadTypeIntArray = "imsvt.h264_payload_type_int_array";
+            public const string KeyH264VideoCodecAttributeProfileLevelIdString = "imsvt.h264_video_codec_attribute_profile_level_id_string";
+            public const string KeyPrefix = "imsvt.";
+            public const string KeyVideoAsBandwidthKbpsInt = "imsvt.video_as_bandwidth_kbps_int";
+            public const string KeyVideoCodecAttributeFrameRateInt = "imsvt.video_codec_attribute_frame_rate_int";
+            public const string KeyVideoCodecAttributePacketizationModeInt = "imsvt.video_codec_attribute_packetization_mode_int";
+            public const string KeyVideoCodecAttributeResolutionIntArray = "imsvt.video_codec_attribute_resolution_int_array";
+            public const string KeyVideoCodecCapabilityPayloadTypesBundle = "imsvt.video_codec_capability_payload_types_bundle";
+            public const string KeyVideoOnDefaultBearerSupportedBool = "imsvt.video_on_default_bearer_supported_bool";
+            public const string KeyVideoQosPreconditionSupportedBool = "imsvt.video_qos_precondition_supported_bool";
+            public const string KeyVideoRrBandwidthBpsInt = "imsvt.video_rr_bandwidth_bps_int";
+            public const string KeyVideoRsBandwidthBpsInt = "imsvt.video_rs_bandwidth_bps_int";
+            public const string KeyVideoRtcpInactivityTimerMillisInt = "imsvt.video_rtcp_inactivity_timer_millis_int";
+            public const string KeyVideoRtpDscpInt = "imsvt.video_rtp_dscp_int";
+            public const string KeyVideoRtpInactivityTimerMillisInt = "imsvt.video_rtp_inactivity_timer_millis_int";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class ImsWfc : Object {
+            public const string KeyEmergencyCallOverEmergencyPdnBool = "imswfc.emergency_call_over_emergency_pdn_bool";
+            public const string KeyPidfShortCodeStringArray = "imswfc.pidf_short_code_string_array";
+            public const string KeyPrefix = "imswfc.";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
         public sealed class Iwlan : Object {
+            public const IwlanEpdgAddressType EpdgAddressVisitedCountry = IwlanEpdgAddressType.VisitedCountry;
+            public const string KeySupportsEapAkaFastReauthBool = "iwlan.supports_eap_aka_fast_reauth_bool";
         }
     }
+    public enum CarrierImsSmsFormat {
+        Format3gpp = 0,
+        Format3gpp2 = 1,
+    }
+    public enum CarrierImsSupplementaryService {
+        CbAcr = 20,
+        CbAll = 12,
+        CbBaic = 18,
+        CbBaoc = 14,
+        CbBicRoam = 19,
+        CbBil = 21,
+        CbBoic = 15,
+        CbBoicExhc = 16,
+        CbIbs = 17,
+        CbObs = 13,
+        CfAll = 1,
+        CfAllConditonalForwarding = 3,
+        CfCfb = 4,
+        CfCfnl = 7,
+        CfCfnrc = 6,
+        CfCfnry = 5,
+        CfCfu = 2,
+        Cw = 0,
+        IdentificationOip = 8,
+        IdentificationOir = 10,
+        IdentificationTip = 9,
+        IdentificationTir = 11,
+    }
     public enum DataConnectionStatus {
+        HandoverInProgress = 5,
     }
     public enum DataEnabledReason {
+        Override = 4,
+        Unknown = -1,
     }
+    public enum ImsGeolocationPidfFor {
+        EmergencyOnCellular = 4,
+        EmergencyOnWifi = 2,
+        NonEmergencyOnCellular = 3,
+        NonEmergencyOnWifi = 1,
+    }
+    public enum ImsIpsecAuthenticationAlgorithm {
+        HmacMd5 = 0,
+        HmacSha1 = 1,
+    }
+    public enum ImsIpsecEncryptionAlgorithm {
+        AesCbc = 2,
+        DesEde3Cbc = 1,
+        Null = 0,
+    }
+    public enum ImsNetworkType {
+        Home = 0,
+        Roaming = 1,
+    }
+    public enum ImsPreferredTransport {
+        DynamicUdpTcp = 2,
+        Tcp = 1,
+        Tls = 3,
+        Udp = 0,
+    }
+    public enum ImsRequestUriFormat {
+        Sip = 1,
+        Tel = 0,
+    }
+    public enum ImsVoiceConferenceSubscribeType {
+        InDialog = 0,
+        OutOfDialog = 1,
+    }
+    public enum ImsVoiceEvsEncodedBwType {
+        Fb = 3,
+        Nb = 0,
+        NbWb = 4,
+        NbWbSwb = 5,
+        NbWbSwbFb = 6,
+        Swb = 2,
+        Wb = 1,
+        WbSwb = 7,
+        WbSwbFb = 8,
+    }
+    public enum ImsVoiceEvsOperationalMode {
+        AmrwbIo = 1,
+        Primary = 0,
+    }
+    public enum ImsVoiceEvsPrimaryModeBitrate {
+        BitRate1280Kbps = 11,
+        BitRate132Kbps = 4,
+        BitRate164Kbps = 5,
+        BitRate244Kbps = 6,
+        BitRate320Kbps = 7,
+        BitRate480Kbps = 8,
+        BitRate59Kbps = 0,
+        BitRate640Kbps = 9,
+        BitRate72Kbps = 1,
+        BitRate80Kbps = 2,
+        BitRate960Kbps = 10,
+        BitRate96Kbps = 3,
+    }
+    public enum ImsVoicePayloadFormat {
+        BandwidthEfficient = 0,
+        OctetAligned = 1,
+    }
+    public enum ImsVoiceSessionPrivacyType {
+        Header = 0,
+        Id = 2,
+        None = 1,
+    }
+    public enum ImsVoiceSessionRefresherType {
+        Uac = 1,
+        Uas = 2,
+        Unknown = 0,
+    }
+    public enum ImsVoiceSessionRefreshMethod {
+        Invite = 0,
+        UpdatePreferred = 1,
+    }
+    public enum ImsVoiceSrvccSupport {
+        AlertingSrvccSupport = 1,
+        BasicSrvccSupport = 0,
+        MidcallSrvccSupport = 3,
+        PrealertingSrvccSupport = 2,
+    }
+    public enum IncludeLocationDataType {
+        Coarse = 1,
+        Fine = 2,
+        None = 0,
+    }
     public enum IwlanEpdgAddressType {
+        VisitedCountry = 4,
     }
     public enum MmsError {
+        DataDisabled = 11,
+        InactiveSubscription = 10,
+        InvalidSubscriptionId = 9,
     }
+    public enum PhoneNumberSource {
+        Carrier = 2,
+        Ims = 3,
+        Uicc = 1,
+    }
     public enum SmsEncoding {
+        Ksc5601 = 4,
     }
     public sealed class SmsManager : Object {
+        public const MmsError MmsErrorDataDisabled = MmsError.DataDisabled;
+        public const MmsError MmsErrorInactiveSubscription = MmsError.InactiveSubscription;
+        public const MmsError MmsErrorInvalidSubscriptionId = MmsError.InvalidSubscriptionId;
+        public const SmsResult ResultRilGenericError = SmsResult.RilGenericError;
     }
     public class SmsMessage : Object {
+        public const SmsEncoding EncodingKsc5601 = SmsEncoding.Ksc5601;
     }
     public enum SmsResult {
+        RilGenericError = 124,
     }
     public class SubscriptionInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual int PortIndex { get; }
+        public virtual int UsageSetting { get; }
     }
     public class SubscriptionManager : Object {
+        public const PhoneNumberSource PhoneNumberSourceCarrier = PhoneNumberSource.Carrier;
+        public const PhoneNumberSource PhoneNumberSourceIms = PhoneNumberSource.Ims;
+        public const PhoneNumberSource PhoneNumberSourceUicc = PhoneNumberSource.Uicc;
+        public const UsageSetting UsageSettingDataCentric = UsageSetting.DataCentric;
+        public const UsageSetting UsageSettingDefault = UsageSetting.Default;
+        public const UsageSetting UsageSettingUnknown = UsageSetting.Unknown;
+        public const UsageSetting UsageSettingVoiceCentric = UsageSetting.VoiceCentric;
+        public virtual string GetPhoneNumber(int subscriptionId);
+        public virtual string GetPhoneNumber(int subscriptionId, int source);
+        public virtual void SetCarrierPhoneNumber(int subscriptionId, string number);
-        public virtual void SetSubscriptionOverrideCongested(int subId, bool overrideCongested, int[] networkTypes, long timeoutMillis);
+        public virtual void SetSubscriptionOverrideCongested(int subId, bool overrideCongested, int[] networkTypes, long expirationDurationMillis);
-        public virtual void SetSubscriptionOverrideCongested(int subId, bool overrideCongested, long timeoutMillis);
+        public virtual void SetSubscriptionOverrideCongested(int subId, bool overrideCongested, long expirationDurationMillis);
-        public virtual void SetSubscriptionOverrideUnmetered(int subId, bool overrideUnmetered, int[] networkTypes, long timeoutMillis);
+        public virtual void SetSubscriptionOverrideUnmetered(int subId, bool overrideUnmetered, int[] networkTypes, long expirationDurationMillis);
-        public virtual void SetSubscriptionOverrideUnmetered(int subId, bool overrideUnmetered, long timeoutMillis);
+        public virtual void SetSubscriptionOverrideUnmetered(int subId, bool overrideUnmetered, long expirationDurationMillis);
+        public virtual void SetSubscriptionPlans(int subId, IList<SubscriptionPlan> plans, long expirationDurationMillis);
     }
     public class TelephonyManager : Object {
+        public const AllowedNetworkTypesReason AllowedNetworkTypesReasonCarrier = AllowedNetworkTypesReason.Carrier;
+        public const AllowedNetworkTypesReason AllowedNetworkTypesReasonUser = AllowedNetworkTypesReason.User;
+        public const DataConnectionStatus DataHandoverInProgress = DataConnectionStatus.HandoverInProgress;
+        public const DataEnabledReason DataEnabledReasonOverride = DataEnabledReason.Override;
+        public const DataEnabledReason DataEnabledReasonUnknown = DataEnabledReason.Unknown;
+        public const IncludeLocationDataType IncludeLocationDataCoarse = IncludeLocationDataType.Coarse;
+        public const IncludeLocationDataType IncludeLocationDataFine = IncludeLocationDataType.Fine;
+        public const IncludeLocationDataType IncludeLocationDataNone = IncludeLocationDataType.None;
+        public const int DefaultPortIndex = 0;
+        public const long NETWORKTYPEBITMASK1xRTT = (long)64;
+        public const long NetworkTypeBitmaskCdma = (long)8;
+        public const long NetworkTypeBitmaskEdge = (long)2;
+        public const long NetworkTypeBitmaskEhrpd = (long)8192;
+        public const long NetworkTypeBitmaskEvdo0 = (long)16;
+        public const long NetworkTypeBitmaskEvdoA = (long)32;
+        public const long NetworkTypeBitmaskEvdoB = (long)2048;
+        public const long NetworkTypeBitmaskGprs = (long)1;
+        public const long NetworkTypeBitmaskGsm = (long)32768;
+        public const long NetworkTypeBitmaskHsdpa = (long)128;
+        public const long NetworkTypeBitmaskHspa = (long)512;
+        public const long NetworkTypeBitmaskHspap = (long)16384;
+        public const long NetworkTypeBitmaskHsupa = (long)256;
+        public const long NetworkTypeBitmaskIwlan = (long)131072;
+        public const long NetworkTypeBitmaskLte = (long)4096;
+        public const long NetworkTypeBitmaskLteCa = (long)262144;
+        public const long NetworkTypeBitmaskNr = (long)524288;
+        public const long NetworkTypeBitmaskTdScdma = (long)65536;
+        public const long NetworkTypeBitmaskUmts = (long)4;
+        public const long NetworkTypeBitmaskUnknown = (long)0;
+        public virtual long SupportedRadioAccessFamily { get; }
+        public virtual long GetAllowedNetworkTypesForReason(int reason);
+        public virtual ServiceState GetServiceState(int includeLocationData);
+        public virtual void RebootModem();
+        public virtual void RegisterTelephonyCallback(int includeLocationData, IExecutor executor, TelephonyCallback callback);
+        public virtual NetworkScan? RequestNetworkScan(int includeLocationData, NetworkScanRequest request, IExecutor executor, TelephonyScanManager.NetworkScanCallback callback);
+        public virtual void SetAllowedNetworkTypesForReason(int reason, long allowedNetworkTypes);
     }
     public sealed class UiccCardInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public bool IsMultipleEnabledProfilesSupported { get; }
+        public int PhysicalSlotIndex { get; }
+        public ICollection<UiccPortInfo> Ports { get; }
     }
+    public sealed class UiccPortInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string IccidRedacted = "FFFFFFFFFFFFFFFFFFFF";
+        public static IParcelableCreator Creator { get; }
+        public string? IccId { get; }
+        public bool IsActive { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int LogicalSlotIndex { get; }
+        public int PortIndex { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum UsageSetting {
+        DataCentric = 2,
+        Default = 0,
+        Unknown = -1,
+        VoiceCentric = 1,
+    }
 }

Android.Telephony.Data

 namespace Android.Telephony.Data {
     public class ApnSetting : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ApnType TypeEnterprise = ApnType.Enterprise;
+        public virtual bool IsPersistent { get; }
+        public virtual int MtuV4 { get; }
+        public virtual int MtuV6 { get; }
+        public virtual int ProfileId { get; }
         public class Builder : Object {
+            public virtual ApnSetting.Builder SetMtuV4(int mtuV4);
+            public virtual ApnSetting.Builder SetMtuV6(int mtuV6);
+            public virtual ApnSetting.Builder SetPersistent(bool isPersistent);
+            public virtual ApnSetting.Builder SetProfileId(int profileId);
         }
     }
     public enum ApnType {
+        Enterprise = 16384,
     }
 }

Android.Telephony.Euicc

 namespace Android.Telephony.Euicc {
     public enum Error {
+        InvalidPort = 10017,
     }
     public class EuiccManager : Object {
+        public const Error ErrorInvalidPort = Error.InvalidPort;
+        public virtual bool IsSimPortAvailable(int portIndex);
+        public virtual void SwitchToSubscription(int subscriptionId, int portIndex, PendingIntent callbackIntent);
     }
 }

Android.Telephony.Ims

 namespace Android.Telephony.Ims {
     public class ImsManager : Object {
+        public virtual ProvisioningManager GetProvisioningManager(int subscriptionId);
     }
     public class ImsMmTelManager : Object, IDisposable, IJavaObject, IJavaPeerable, IRegistrationManager {
+        public virtual void RegisterImsStateCallback(IExecutor executor, ImsStateCallback callback);
+        public virtual void UnregisterImsStateCallback(ImsStateCallback callback);
     }
     public class ImsRcsManager : Object {
+        public const RcsCapabilityType CapabilityTypeNone = RcsCapabilityType.None;
+        public const RcsCapabilityType CapabilityTypeOptionsUce = RcsCapabilityType.OptionsUce;
+        public const RcsCapabilityType CapabilityTypePresenceUce = RcsCapabilityType.PresenceUce;
+        public virtual void RegisterImsStateCallback(IExecutor executor, ImsStateCallback callback);
+        public virtual void UnregisterImsStateCallback(ImsStateCallback callback);
     }
+    public abstract class ImsStateCallback : Object {
+        public const ImsStateCallbackReason ReasonImsServiceDisconnected = ImsStateCallbackReason.ImsServiceDisconnected;
+        public const ImsStateCallbackReason ReasonImsServiceNotReady = ImsStateCallbackReason.ImsServiceNotReady;
+        public const ImsStateCallbackReason ReasonNoImsServiceConfigured = ImsStateCallbackReason.NoImsServiceConfigured;
+        public const ImsStateCallbackReason ReasonSubscriptionInactive = ImsStateCallbackReason.SubscriptionInactive;
+        public const ImsStateCallbackReason ReasonUnknownPermanentError = ImsStateCallbackReason.UnknownPermanentError;
+        public const ImsStateCallbackReason ReasonUnknownTemporaryError = ImsStateCallbackReason.UnknownTemporaryError;
+        public ImsStateCallback();
+        protected ImsStateCallback(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public abstract void OnAvailable();
+        public abstract void OnError();
+        public abstract void OnUnavailable(int reason);
+    }
+    public enum ImsStateCallbackReason {
+        ImsServiceDisconnected = 3,
+        ImsServiceNotReady = 6,
+        NoImsServiceConfigured = 4,
+        SubscriptionInactive = 5,
+        UnknownPermanentError = 2,
+        UnknownTemporaryError = 1,
+    }
+    public class ProvisioningManager : Object {
+        protected ProvisioningManager(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual bool GetProvisioningStatusForCapability(int capability, int tech);
+        public virtual bool GetRcsProvisioningStatusForCapability(int capability, int tech);
+        public virtual bool IsProvisioningRequiredForCapability(int capability, int tech);
+        public virtual bool IsRcsProvisioningRequiredForCapability(int capability, int tech);
+        public virtual void RegisterFeatureProvisioningChangedCallback(IExecutor executor, ProvisioningManager.FeatureProvisioningCallback callback);
+        public virtual void SetProvisioningStatusForCapability(int capability, int tech, bool isProvisioned);
+        public virtual void SetRcsProvisioningStatusForCapability(int capability, int tech, bool isProvisioned);
+        public virtual void UnregisterFeatureProvisioningChangedCallback(ProvisioningManager.FeatureProvisioningCallback callback);
+        public abstract class FeatureProvisioningCallback : Object {
+            public FeatureProvisioningCallback();
+            protected FeatureProvisioningCallback(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public abstract void OnFeatureProvisioningChanged(int capability, int tech, bool isProvisioned);
+            public abstract void OnRcsFeatureProvisioningChanged(int capability, int tech, bool isProvisioned);
+        }
+    }
+    public enum RcsCapabilityType {
+        None = 0,
+        OptionsUce = 1,
+        PresenceUce = 2,
+    }
 }

Android.Telephony.Ims.Feature

 namespace Android.Telephony.Ims.Feature {
     public enum MmTelCapabilityType {
+        None = 0,
     }
 }

Android.Telephony.Ims.Stub

+namespace Android.Telephony.Ims.Stub {
+    public class ImsRegistrationImplBase : Object {
+        public const RegistrationTech RegistrationTechCrossSim = RegistrationTech.CrossSim;
+        public const RegistrationTech RegistrationTechIwlan = RegistrationTech.Iwlan;
+        public const RegistrationTech RegistrationTechLte = RegistrationTech.Lte;
+        public const RegistrationTech RegistrationTechNone = RegistrationTech.None;
+        public const RegistrationTech RegistrationTechNr = RegistrationTech.Nr;
+        protected ImsRegistrationImplBase(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public enum RegistrationTech {
+        CrossSim = 2,
+        Iwlan = 1,
+        Lte = 0,
+        None = -1,
+        Nr = 3,
+    }
+}

Android.Text

 namespace Android.Text {
     public class AlteredCharSequence : Object, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IGetChars, IJavaObject, IJavaPeerable {
+        IEnumerator IEnumerable.GetEnumerator();
-        IEnumerator IEnumerable.GetEnumerator();
     }
     public class BoringLayout : Layout, IDisposable, IJavaObject, IJavaPeerable, TextUtils.IEllipsizeCallback {
+        public BoringLayout(ICharSequence source, TextPaint paint, int outerWidth, Layout.Alignment align, float spacingMult, float spacingAdd, BoringLayout.Metrics metrics, bool includePad, TextUtils.TruncateAt? ellipsize, int ellipsizedWidth, bool useFallbackLineSpacing);
+        public BoringLayout(string source, TextPaint paint, int outerWidth, Layout.Alignment align, float spacingMult, float spacingAdd, BoringLayout.Metrics metrics, bool includePad, TextUtils.TruncateAt? ellipsize, int ellipsizedWidth, bool useFallbackLineSpacing);
+        public static BoringLayout.Metrics? IsBoring(ICharSequence text, TextPaint paint, ITextDirectionHeuristic textDir, bool useFallbackLineSpacing, BoringLayout.Metrics? metrics);
+        public static BoringLayout.Metrics? IsBoring(string text, TextPaint paint, ITextDirectionHeuristic textDir, bool useFallbackLineSpacing, BoringLayout.Metrics? metrics);
+        public static BoringLayout Make(ICharSequence source, TextPaint paint, int outerWidth, Layout.Alignment align, BoringLayout.Metrics metrics, bool includePad, TextUtils.TruncateAt? ellipsize, int ellipsizedWidth, bool useFallbackLineSpacing);
+        public static BoringLayout Make(string source, TextPaint paint, int outerWidth, Layout.Alignment align, BoringLayout.Metrics metrics, bool includePad, TextUtils.TruncateAt? ellipsize, int ellipsizedWidth, bool useFallbackLineSpacing);
+        public virtual BoringLayout ReplaceOrMake(ICharSequence source, TextPaint paint, int outerWidth, Layout.Alignment align, BoringLayout.Metrics metrics, bool includePad, TextUtils.TruncateAt? ellipsize, int ellipsizedWidth, bool useFallbackLineSpacing);
+        public BoringLayout ReplaceOrMake(string source, TextPaint paint, int outerWidth, Layout.Alignment align, BoringLayout.Metrics metrics, bool includePad, TextUtils.TruncateAt? ellipsize, int ellipsizedWidth, bool useFallbackLineSpacing);
     }
     public enum HyphenationFrequency {
+        FullFast = 4,
+        NormalFast = 3,
     }
     public enum InputTypes {
+        TextFlagEnableTextConversionSuggestions = 1048576,
     }
     public abstract class Layout : Object {
+        public const HyphenationFrequency HyphenationFrequencyFullFast = HyphenationFrequency.FullFast;
+        public const HyphenationFrequency HyphenationFrequencyNormalFast = HyphenationFrequency.NormalFast;
+        public virtual bool IsFallbackLineSpacingEnabled { get; }
     }
     public class SpannableString : SpannableStringInternal, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IGetChars, IJavaObject, IJavaPeerable, ISpannable, ISpanned {
+        IEnumerator IEnumerable.GetEnumerator();
-        IEnumerator IEnumerable.GetEnumerator();
     }
     public class SpannableStringBuilder : Object, IAppendable, ICharSequence, IDisposable, IEditable, IEnumerable, IEnumerable<char>, IGetChars, IJavaObject, IJavaPeerable, ISpannable, ISpanned {
+        IEnumerator IEnumerable.GetEnumerator();
-        IEnumerator IEnumerable.GetEnumerator();
     }
     public sealed class SpannedString : SpannableStringInternal, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IGetChars, IJavaObject, IJavaPeerable, ISpanned {
+        IEnumerator IEnumerable.GetEnumerator();
-        IEnumerator IEnumerable.GetEnumerator();
     }
     public class StaticLayout : Layout {
         public sealed class Builder : Object {
+            public StaticLayout.Builder SetLineBreakConfig(LineBreakConfig lineBreakConfig);
         }
     }
 }

Android.Text.Style

 namespace Android.Text.Style {
     public class StyleSpan : MetricAffectingSpan, IDisposable, IJavaObject, IJavaPeerable, IParcelable, IParcelableSpan {
+        public StyleSpan(TypefaceStyle style, int fontWeightAdjustment);
+        public virtual int FontWeightAdjustment { get; }
     }
+    public sealed class SuggestionRangeSpan : CharacterStyle, IDisposable, IJavaObject, IJavaPeerable, IParcelable, IParcelableSpan {
+        public SuggestionRangeSpan();
+        public int BackgroundColor { get; set; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int SpanTypeId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public override void UpdateDrawState(TextPaint tp);
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
 }

Android.Util

 namespace Android.Util {
     public sealed class ArrayMap : Object, IDisposable, IJavaObject, IJavaPeerable, IMap {
+        public void ForEach(IBiConsumer action);
+        public void ReplaceAll(IBiFunction function);
     }
     public sealed class ArraySet : Object, ICollection, IDisposable, IIterable, IJavaObject, IJavaPeerable, ISet {
+        public void ForEach(IConsumer action);
     }
+    public interface IDumpable : IDisposable, IJavaObject, IJavaPeerable {
+        string DumpableName { get; }
+        void Dump(PrintWriter writer, string[]? args);
+    }
+    public interface IDumpableContainer : IDisposable, IJavaObject, IJavaPeerable {
+        bool AddDumpable(IDumpable dumpable);
+        bool RemoveDumpable(IDumpable dumpable);
+    }
 }

Android.Views

 namespace Android.Views {
     public abstract class ActionProvider : Object {
-        public ActionProvider(Context? context);
+        public ActionProvider(Context context);
-        public abstract View? OnCreateActionView();
+        public abstract View OnCreateActionView();
-        public virtual View? OnCreateActionView(IMenuItem? forItem);
+        public virtual View OnCreateActionView(IMenuItem forItem);
-        public virtual void OnPrepareSubMenu(ISubMenu? subMenu);
+        public virtual void OnPrepareSubMenu(ISubMenu subMenu);
     }
     public sealed class Choreographer : Object {
+        public void PostVsyncCallback(Choreographer.IVsyncCallback callback);
+        public void RemoveVsyncCallback(Choreographer.IVsyncCallback? callback);
+        public class FrameData : Object {
+            protected FrameData(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual long FrameTimeNanos { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual Choreographer.FrameTimeline PreferredFrameTimeline { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual Choreographer.FrameTimeline[] GetFrameTimelines();
+        }
+        public class FrameTimeline : Object {
+            protected FrameTimeline(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual long DeadlineNanos { get; }
+            public virtual long ExpectedPresentationTimeNanos { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual long VsyncId { get; }
+        }
+        public interface IVsyncCallback : IDisposable, IJavaObject, IJavaPeerable {
+            void OnVsync(Choreographer.FrameData data);
+        }
     }
     public sealed class DisplayCutout : Object {
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public DisplayCutout Build();
+            public DisplayCutout.Builder SetBoundingRectBottom(Rect boundingRectBottom);
+            public DisplayCutout.Builder SetBoundingRectLeft(Rect boundingRectLeft);
+            public DisplayCutout.Builder SetBoundingRectRight(Rect boundingRectRight);
+            public DisplayCutout.Builder SetBoundingRectTop(Rect boundingRectTop);
+            public DisplayCutout.Builder SetCutoutPath(Path cutoutPath);
+            public DisplayCutout.Builder SetSafeInsets(Insets safeInsets);
+            public DisplayCutout.Builder SetWaterfallInsets(Insets waterfallInsets);
+        }
     }
     public class GestureDetector : Object {
-        public GestureDetector(Context context, GestureDetector.IOnGestureListener listener);
+        public GestureDetector(Context? context, GestureDetector.IOnGestureListener listener);
-        public GestureDetector(Context context, GestureDetector.IOnGestureListener listener, Handler handler);
+        public GestureDetector(Context? context, GestureDetector.IOnGestureListener listener, Handler? handler);
-        public GestureDetector(Context context, GestureDetector.IOnGestureListener listener, Handler handler, bool unused);
+        public GestureDetector(Context? context, GestureDetector.IOnGestureListener listener, Handler? handler, bool unused);
-        public GestureDetector(GestureDetector.IOnGestureListener listener, Handler handler);
+        public GestureDetector(GestureDetector.IOnGestureListener listener, Handler? handler);
-        public virtual void SetContextClickListener(GestureDetector.IOnContextClickListener onContextClickListener);
+        public virtual void SetContextClickListener(GestureDetector.IOnContextClickListener? onContextClickListener);
-        public virtual void SetOnDoubleTapListener(GestureDetector.IOnDoubleTapListener onDoubleTapListener);
+        public virtual void SetOnDoubleTapListener(GestureDetector.IOnDoubleTapListener? onDoubleTapListener);
         public interface IOnContextClickListener : IDisposable, IJavaObject, IJavaPeerable {
-            bool OnContextClick(MotionEvent? e);
+            bool OnContextClick(MotionEvent e);
         }
         public interface IOnDoubleTapListener : IDisposable, IJavaObject, IJavaPeerable {
-            bool OnDoubleTap(MotionEvent? e);
+            bool OnDoubleTap(MotionEvent e);
-            bool OnDoubleTapEvent(MotionEvent? e);
+            bool OnDoubleTapEvent(MotionEvent e);
-            bool OnSingleTapConfirmed(MotionEvent? e);
+            bool OnSingleTapConfirmed(MotionEvent e);
         }
     }
     public class Gravity : Object {
-        public static void Apply(GravityFlags gravity, int w, int h, Rect container, Rect outRect);
+        public static void Apply(GravityFlags gravity, int w, int h, Rect? container, Rect? outRect);
     }
     public interface IAttachedSurfaceControl : IDisposable, IJavaObject, IJavaPeerable {
+        void SetTouchableRegion(Region? r);
     }
     public interface IMenuItem : IDisposable, IJavaObject, IJavaPeerable {
-        ActionProvider ActionProvider { get; }
+        ActionProvider? ActionProvider { get; }
-        View ActionView { get; }
+        View? ActionView { get; }
-        string ContentDescription { get; }
+        string? ContentDescription { get; }
-        ICharSequence ContentDescriptionFormatted { get; }
+        ICharSequence? ContentDescriptionFormatted { get; }
-        Drawable Icon { get; }
+        Drawable? Icon { get; }
-        BlendMode IconTintBlendMode { get; }
+        BlendMode? IconTintBlendMode { get; }
-        ColorStateList IconTintList { get; }
+        ColorStateList? IconTintList { get; }
-        PorterDuff.Mode IconTintMode { get; }
+        PorterDuff.Mode? IconTintMode { get; }
-        Intent Intent { get; }
+        Intent? Intent { get; }
-        IContextMenuContextMenuInfo MenuInfo { get; }
+        IContextMenuContextMenuInfo? MenuInfo { get; }
-        ISubMenu SubMenu { get; }
+        ISubMenu? SubMenu { get; }
-        ICharSequence TitleCondensedFormatted { get; }
+        ICharSequence? TitleCondensedFormatted { get; }
-        ICharSequence TitleFormatted { get; }
+        ICharSequence? TitleFormatted { get; }
-        string TooltipText { get; }
+        string? TooltipText { get; }
-        ICharSequence TooltipTextFormatted { get; }
+        ICharSequence? TooltipTextFormatted { get; }
-        IMenuItem SetActionProvider(ActionProvider actionProvider);
+        IMenuItem SetActionProvider(ActionProvider? actionProvider);
-        IMenuItem SetActionView(View view);
+        IMenuItem SetActionView(View? view);
-        IMenuItem SetContentDescription(ICharSequence contentDescription);
+        IMenuItem SetContentDescription(ICharSequence? contentDescription);
-        IMenuItem SetContentDescription(string contentDescription);
+        IMenuItem SetContentDescription(string? contentDescription);
-        IMenuItem SetIcon(Drawable icon);
+        IMenuItem SetIcon(Drawable? icon);
-        IMenuItem SetIconTintList(ColorStateList tint);
+        IMenuItem SetIconTintList(ColorStateList? tint);
-        IMenuItem SetIntent(Intent intent);
+        IMenuItem SetIntent(Intent? intent);
-        IMenuItem SetOnActionExpandListener(IMenuItemOnActionExpandListener listener);
+        IMenuItem SetOnActionExpandListener(IMenuItemOnActionExpandListener? listener);
-        IMenuItem SetOnMenuItemClickListener(IMenuItemOnMenuItemClickListener menuItemClickListener);
+        IMenuItem SetOnMenuItemClickListener(IMenuItemOnMenuItemClickListener? menuItemClickListener);
-        IMenuItem SetTitle(ICharSequence title);
+        IMenuItem SetTitle(ICharSequence? title);
-        IMenuItem SetTitleCondensed(ICharSequence title);
+        IMenuItem SetTitleCondensed(ICharSequence? title);
-        IMenuItem SetTooltipText(ICharSequence tooltipText);
+        IMenuItem SetTooltipText(ICharSequence? tooltipText);
-        IMenuItem SetTooltipText(string tooltipText);
+        IMenuItem SetTooltipText(string? tooltipText);
     }
     public static class IMenuItemExtensions {
-        public static IMenuItem SetContentDescription(this IMenuItem self, string contentDescription);
+        public static IMenuItem SetContentDescription(this IMenuItem self, string? contentDescription);
-        public static IMenuItem SetTitle(this IMenuItem self, string title);
+        public static IMenuItem SetTitle(this IMenuItem self, string? title);
-        public static IMenuItem SetTitleCondensed(this IMenuItem self, string title);
+        public static IMenuItem SetTitleCondensed(this IMenuItem self, string? title);
-        public static IMenuItem SetTooltipText(this IMenuItem self, string tooltipText);
+        public static IMenuItem SetTooltipText(this IMenuItem self, string? tooltipText);
     }
     public interface IMenuItemOnActionExpandListener : IDisposable, IJavaObject, IJavaPeerable {
-        bool OnMenuItemActionCollapse(IMenuItem? item);
+        bool OnMenuItemActionCollapse(IMenuItem item);
-        bool OnMenuItemActionExpand(IMenuItem? item);
+        bool OnMenuItemActionExpand(IMenuItem item);
     }
     public interface IMenuItemOnMenuItemClickListener : IDisposable, IJavaObject, IJavaPeerable {
-        bool OnMenuItemClick(IMenuItem? item);
+        bool OnMenuItemClick(IMenuItem item);
     }
     public sealed class InputDevice : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int GetKeyCodeForKeyLocation(int locationKeyCode);
     }
     public abstract class InputEvent : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
-        public abstract void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
+        public abstract void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
     }
     public interface IViewParent : IDisposable, IJavaObject, IJavaPeerable {
+        IOnBackInvokedDispatcher? FindOnBackInvokedDispatcherForChild(View child, View requester);
-        void NotifySubtreeAccessibilityStateChanged(View? child, View source, ContentChangeTypes changeType);
+        void NotifySubtreeAccessibilityStateChanged(View child, View source, ContentChangeTypes changeType);
-        bool OnNestedPrePerformAccessibilityAction(View target, Action action, Bundle arguments);
+        bool OnNestedPrePerformAccessibilityAction(View target, Action action, Bundle? arguments);
-        bool RequestChildRectangleOnScreen(View child, Rect rectangle, bool immediate);
+        bool RequestChildRectangleOnScreen(View child, Rect? rectangle, bool immediate);
-        bool RequestSendAccessibilityEvent(View child, AccessibilityEvent e);
+        bool RequestSendAccessibilityEvent(View child, AccessibilityEvent? e);
     }
     public enum Keycode {
+        DemoApp1 = 301,
+        DemoApp2 = 302,
+        DemoApp3 = 303,
+        DemoApp4 = 304,
+        FeaturedApp1 = 297,
+        FeaturedApp2 = 298,
+        FeaturedApp3 = 299,
+        FeaturedApp4 = 300,
+        VideoApp1 = 289,
+        VideoApp2 = 290,
+        VideoApp3 = 291,
+        VideoApp4 = 292,
+        VideoApp5 = 293,
+        VideoApp6 = 294,
+        VideoApp7 = 295,
+        VideoApp8 = 296,
     }
     public class KeyEvent : InputEvent, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const Keycode KeycodeDemoApp1 = Keycode.DemoApp1;
+        public const Keycode KeycodeDemoApp2 = Keycode.DemoApp2;
+        public const Keycode KeycodeDemoApp3 = Keycode.DemoApp3;
+        public const Keycode KeycodeDemoApp4 = Keycode.DemoApp4;
+        public const Keycode KeycodeFeaturedApp1 = Keycode.FeaturedApp1;
+        public const Keycode KeycodeFeaturedApp2 = Keycode.FeaturedApp2;
+        public const Keycode KeycodeFeaturedApp3 = Keycode.FeaturedApp3;
+        public const Keycode KeycodeFeaturedApp4 = Keycode.FeaturedApp4;
+        public const Keycode KeycodeVideoApp1 = Keycode.VideoApp1;
+        public const Keycode KeycodeVideoApp2 = Keycode.VideoApp2;
+        public const Keycode KeycodeVideoApp3 = Keycode.VideoApp3;
+        public const Keycode KeycodeVideoApp4 = Keycode.VideoApp4;
+        public const Keycode KeycodeVideoApp5 = Keycode.VideoApp5;
+        public const Keycode KeycodeVideoApp6 = Keycode.VideoApp6;
+        public const Keycode KeycodeVideoApp7 = Keycode.VideoApp7;
+        public const Keycode KeycodeVideoApp8 = Keycode.VideoApp8;
     }
     public sealed class MotionEvent : InputEvent, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const int FlagCanceled = 32;
     }
     public sealed class PointerIcon : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
-        public static PointerIcon? Create(Bitmap bitmap, float hotSpotX, float hotSpotY);
+        public static PointerIcon Create(Bitmap bitmap, float hotSpotX, float hotSpotY);
-        public static PointerIcon? GetSystemIcon(Context context, PointerIconType type);
+        public static PointerIcon GetSystemIcon(Context context, PointerIconType type);
-        public static PointerIcon? Load(Resources resources, int resourceId);
+        public static PointerIcon Load(Resources resources, int resourceId);
     }
     public class ScaleGestureDetector : Object {
-        public ScaleGestureDetector(Context? context, ScaleGestureDetector.IOnScaleGestureListener? listener);
+        public ScaleGestureDetector(Context context, ScaleGestureDetector.IOnScaleGestureListener listener);
-        public ScaleGestureDetector(Context? context, ScaleGestureDetector.IOnScaleGestureListener? listener, Handler? handler);
+        public ScaleGestureDetector(Context context, ScaleGestureDetector.IOnScaleGestureListener listener, Handler? handler);
-        public virtual bool OnTouchEvent(MotionEvent? e);
+        public virtual bool OnTouchEvent(MotionEvent e);
         public interface IOnScaleGestureListener : IDisposable, IJavaObject, IJavaPeerable {
-            bool OnScale(ScaleGestureDetector? detector);
+            bool OnScale(ScaleGestureDetector detector);
-            bool OnScaleBegin(ScaleGestureDetector? detector);
+            bool OnScaleBegin(ScaleGestureDetector detector);
-            void OnScaleEnd(ScaleGestureDetector? detector);
+            void OnScaleEnd(ScaleGestureDetector detector);
         }
         public class SimpleOnScaleGestureListener : Object, IDisposable, IJavaObject, IJavaPeerable, ScaleGestureDetector.IOnScaleGestureListener {
-            public virtual bool OnScale(ScaleGestureDetector? detector);
+            public virtual bool OnScale(ScaleGestureDetector detector);
-            public virtual bool OnScaleBegin(ScaleGestureDetector? detector);
+            public virtual bool OnScaleBegin(ScaleGestureDetector detector);
-            public virtual void OnScaleEnd(ScaleGestureDetector? detector);
+            public virtual void OnScaleEnd(ScaleGestureDetector detector);
         }
     }
     public sealed class SurfaceControl : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public class Builder : Object {
+            public virtual SurfaceControl.Builder SetHidden(bool hidden);
         }
+        public interface ITransactionCommittedListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnTransactionCommitted();
+        }
         public class Transaction : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public virtual SurfaceControl.Transaction AddTransactionCommittedListener(IExecutor executor, SurfaceControl.ITransactionCommittedListener listener);
+            public virtual SurfaceControl.Transaction SetBuffer(SurfaceControl sc, HardwareBuffer? buffer);
+            public virtual SurfaceControl.Transaction SetBuffer(SurfaceControl sc, HardwareBuffer? buffer, SyncFence? fence);
+            public virtual SurfaceControl.Transaction SetBuffer(SurfaceControl sc, HardwareBuffer? buffer, SyncFence? fence, IConsumer? releaseCallback);
+            public virtual SurfaceControl.Transaction SetBufferTransform(SurfaceControl sc, int transform);
+            public virtual SurfaceControl.Transaction SetCrop(SurfaceControl sc, Rect? crop);
+            public virtual SurfaceControl.Transaction SetDamageRegion(SurfaceControl sc, Region? region);
+            public virtual SurfaceControl.Transaction SetDataSpace(SurfaceControl sc, int dataspace);
+            public virtual SurfaceControl.Transaction SetOpaque(SurfaceControl sc, bool isOpaque);
+            public virtual SurfaceControl.Transaction SetPosition(SurfaceControl sc, float x, float y);
+            public virtual SurfaceControl.Transaction SetScale(SurfaceControl sc, float scaleX, float scaleY);
         }
     }
     public class SurfaceControlViewHost : Object {
         public sealed class SurfacePackage : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public void NotifyConfigurationChanged(Configuration c);
+            public void NotifyDetachedFromWindow();
         }
     }
     public class View : Object, Drawable.ICallback, IAccessibilityEventSource, IDisposable, IJavaObject, IJavaPeerable, KeyEvent.ICallback {
+        public virtual bool AutoHandwritingEnabled { get; set; }
+        public bool PreferKeepClear { get; set; }
+        public IList<Rect> PreferKeepClearRects { get; set; }
+        public IOnBackInvokedDispatcher FindOnBackInvokedDispatcher();
         public class AccessibilityDelegate : Object {
-            public virtual AccessibilityNodeProvider GetAccessibilityNodeProvider(View host);
+            public virtual AccessibilityNodeProvider? GetAccessibilityNodeProvider(View host);
-            public virtual bool PerformAccessibilityAction(View host, Action action, Bundle args);
+            public virtual bool PerformAccessibilityAction(View host, Action action, Bundle? args);
         }
-        public delegate WindowInsets? ApplyWindowInsetsHandler(View? v, WindowInsets? insets);
+        public delegate WindowInsets ApplyWindowInsetsHandler(View v, WindowInsets insets);
         public interface IOnApplyWindowInsetsListener : IDisposable, IJavaObject, IJavaPeerable {
-            WindowInsets? OnApplyWindowInsets(View? v, WindowInsets? insets);
+            WindowInsets OnApplyWindowInsets(View v, WindowInsets insets);
         }
         public interface IOnAttachStateChangeListener : IDisposable, IJavaObject, IJavaPeerable {
-            void OnViewAttachedToWindow(View? attachedView);
+            void OnViewAttachedToWindow(View attachedView);
-            void OnViewDetachedFromWindow(View? detachedView);
+            void OnViewDetachedFromWindow(View detachedView);
         }
     }
     public class ViewConfiguration : Object {
-        public static ViewConfiguration? Get(Context? context);
+        public static ViewConfiguration? Get(Context context);
     }
     public abstract class ViewGroup : View, IDisposable, IJavaObject, IJavaPeerable, IViewManager, IViewParent {
+        public virtual IOnBackInvokedDispatcher? FindOnBackInvokedDispatcherForChild(View child, View requester);
     }
     public class ViewPropertyAnimator : Object {
-        public virtual ITimeInterpolator Interpolator { get; }
+        public virtual ITimeInterpolator? Interpolator { get; }
-        public virtual ViewPropertyAnimator SetInterpolator(ITimeInterpolator interpolator);
+        public virtual ViewPropertyAnimator SetInterpolator(ITimeInterpolator? interpolator);
-        public virtual ViewPropertyAnimator SetListener(Animator.IAnimatorListener listener);
+        public virtual ViewPropertyAnimator SetListener(Animator.IAnimatorListener? listener);
-        public virtual ViewPropertyAnimator SetUpdateListener(ValueAnimator.IAnimatorUpdateListener listener);
+        public virtual ViewPropertyAnimator SetUpdateListener(ValueAnimator.IAnimatorUpdateListener? listener);
-        public virtual ViewPropertyAnimator WithEndAction(IRunnable runnable);
+        public virtual ViewPropertyAnimator WithEndAction(IRunnable? runnable);
-        public virtual ViewPropertyAnimator WithStartAction(IRunnable runnable);
+        public virtual ViewPropertyAnimator WithStartAction(IRunnable? runnable);
     }
     public abstract class Window : Object {
+        public virtual IOnBackInvokedDispatcher OnBackInvokedDispatcher { get; }
     }
 }

Android.Views.Accessibility

 namespace Android.Views.Accessibility {
     public sealed class AccessibilityEvent : AccessibilityRecord, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const EventTypes TypeSpeechStateChange = EventTypes.SpeechStateChange;
+        public const SpeechState SpeechStateListeningEnd = SpeechState.ListeningEnd;
+        public const SpeechState SpeechStateListeningStart = SpeechState.ListeningStart;
+        public const SpeechState SpeechStateSpeakingEnd = SpeechState.SpeakingEnd;
+        public const SpeechState SpeechStateSpeakingStart = SpeechState.SpeakingStart;
+        public int SpeechStateChangeTypes { get; set; }
     }
     public sealed class AccessibilityManager : Object {
+        public bool IsAudioDescriptionRequested { get; }
+        public event EventHandler<AccessibilityManager.AccessibilityServicesStateChangeEventArgs> AccessibilityServicesStateChange;
+        public void AddAccessibilityServicesStateChangeListener(AccessibilityManager.IAccessibilityServicesStateChangeListener listener);
+        public void AddAccessibilityServicesStateChangeListener(IExecutor executor, AccessibilityManager.IAccessibilityServicesStateChangeListener listener);
+        public void AddAudioDescriptionRequestedChangeListener(IExecutor executor, AccessibilityManager.IAudioDescriptionRequestedChangeListener listener);
+        public bool RemoveAccessibilityServicesStateChangeListener(AccessibilityManager.IAccessibilityServicesStateChangeListener listener);
+        public bool RemoveAudioDescriptionRequestedChangeListener(AccessibilityManager.IAudioDescriptionRequestedChangeListener listener);
+        public class AccessibilityServicesStateChangeEventArgs : EventArgs {
+            public AccessibilityServicesStateChangeEventArgs(AccessibilityManager manager);
+            public AccessibilityManager Manager { get; }
+        }
+        public class AudioDescriptionRequestedChangeEventArgs : EventArgs {
+            public AudioDescriptionRequestedChangeEventArgs(bool enabled);
+            public bool Enabled { get; }
+        }
+        public interface IAccessibilityServicesStateChangeListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnAccessibilityServicesStateChanged(AccessibilityManager manager);
+        }
+        public interface IAudioDescriptionRequestedChangeListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnAudioDescriptionRequestedChanged(bool enabled);
+        }
     }
     public class AccessibilityNodeInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const PrefetchType FlagPrefetchAncestors = PrefetchType.Ancestors;
+        public const PrefetchType FlagPrefetchDescendantsBreadthFirst = PrefetchType.DescendantsBreadthFirst;
+        public const PrefetchType FlagPrefetchDescendantsDepthFirst = PrefetchType.DescendantsDepthFirst;
+        public const PrefetchType FlagPrefetchDescendantsHybrid = PrefetchType.DescendantsHybrid;
+        public const PrefetchType FlagPrefetchSiblings = PrefetchType.Siblings;
+        public const PrefetchType FlagPrefetchUninterruptible = PrefetchType.Uninterruptible;
+        public const int MaxNumberOfPrefetchedNodes = 50;
+        public virtual bool TextSelectable { get; set; }
+        public virtual string UniqueId { get; set; }
+        public virtual AccessibilityNodeInfo GetChild(int index, int prefetchingStrategy);
+        public virtual AccessibilityNodeInfo GetParent(int prefetchingStrategy);
         public sealed class AccessibilityAction : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public static AccessibilityNodeInfo.AccessibilityAction ActionShowTextSuggestions { get; }
         }
         public sealed class CollectionItemInfo : Object {
+            public string? ColumnTitle { get; }
+            public string? RowTitle { get; }
+            public sealed class Builder : Object {
+                public Builder();
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public AccessibilityNodeInfo.CollectionItemInfo Build();
+                public AccessibilityNodeInfo.CollectionItemInfo.Builder SetColumnIndex(int columnIndex);
+                public AccessibilityNodeInfo.CollectionItemInfo.Builder SetColumnSpan(int columnSpan);
+                public AccessibilityNodeInfo.CollectionItemInfo.Builder SetColumnTitle(string? columnTitle);
+                public AccessibilityNodeInfo.CollectionItemInfo.Builder SetHeading(bool heading);
+                public AccessibilityNodeInfo.CollectionItemInfo.Builder SetRowIndex(int rowIndex);
+                public AccessibilityNodeInfo.CollectionItemInfo.Builder SetRowSpan(int rowSpan);
+                public AccessibilityNodeInfo.CollectionItemInfo.Builder SetRowTitle(string? rowTitle);
+                public AccessibilityNodeInfo.CollectionItemInfo.Builder SetSelected(bool selected);
+            }
         }
     }
     public class AccessibilityRecord : Object {
+        public virtual int DisplayId { get; }
-        public virtual IList<ICharSequence>? Text { get; }
+        public virtual IList<ICharSequence> Text { get; }
+        public virtual AccessibilityNodeInfo GetSource(int prefetchingStrategy);
     }
     public sealed class AccessibilityWindowInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const AccessibilityWindowType TypeMagnificationOverlay = AccessibilityWindowType.MagnificationOverlay;
+        public AccessibilityNodeInfo GetRoot(int prefetchingStrategy);
     }
     public enum AccessibilityWindowType {
+        MagnificationOverlay = 6,
     }
     public class CaptioningManager : Object {
+        public virtual bool IsCallCaptioningEnabled { get; }
+        public bool IsSystemAudioCaptioningEnabled { get; }
+        public bool IsSystemAudioCaptioningUiEnabled { get; }
         public abstract class CaptioningChangeListener : Object {
+            public virtual void OnSystemAudioCaptioningChanged(bool enabled);
+            public virtual void OnSystemAudioCaptioningUiChanged(bool enabled);
         }
     }
     public enum EventTypes {
+        SpeechStateChange = 33554432,
     }
+    public enum PrefetchType {
+        Ancestors = 1,
+        DescendantsBreadthFirst = 16,
+        DescendantsDepthFirst = 8,
+        DescendantsHybrid = 4,
+        Siblings = 2,
+        Uninterruptible = 32,
+    }
+    public enum SpeechState {
+        ListeningEnd = 8,
+        ListeningStart = 4,
+        SpeakingEnd = 2,
+        SpeakingStart = 1,
+    }
 }

Android.Views.Animations

 namespace Android.Views.Animations {
     public abstract class Animation : Object, ICloneable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual int BackdropColor { get; set; }
+        public virtual bool ShowBackdrop { get; set; }
     }
     public class PathInterpolator : BaseInterpolator, IDisposable, IInterpolator, IJavaObject, IJavaPeerable, ITimeInterpolator {
-        public PathInterpolator(Path? path);
+        public PathInterpolator(Path path);
     }
 }

Android.Views.Autofill

 namespace Android.Views.Autofill {
     public sealed class AutofillManager : Object {
+        public bool ShowAutofillDialog(View view);
+        public bool ShowAutofillDialog(View view, int virtualId);
     }
 }

Android.Views.InputMethods

 namespace Android.Views.InputMethods {
     public class BaseInputConnection : Object, IDisposable, IInputConnection, IJavaObject, IJavaPeerable {
+        public virtual TextSnapshot TakeSnapshot();
         public static class InterfaceConsts {
+            public const CursorUpdateFilter CursorUpdateFilterCharacterBounds = CursorUpdateFilter.CharacterBounds;
+            public const CursorUpdateFilter CursorUpdateFilterEditorBounds = CursorUpdateFilter.EditorBounds;
+            public const CursorUpdateFilter CursorUpdateFilterInsertionMarker = CursorUpdateFilter.InsertionMarker;
         }
     }
     public sealed class CursorAnchorInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public EditorBoundsInfo EditorBoundsInfo { get; }
         public sealed class Builder : Object {
+            public CursorAnchorInfo.Builder SetEditorBoundsInfo(EditorBoundsInfo? bounds);
         }
     }
     public enum CursorUpdate {
+        None = 0,
     }
+    public enum CursorUpdateFilter {
+        CharacterBounds = 8,
+        EditorBounds = 4,
+        InsertionMarker = 16,
+        None = 0,
+    }
+    public sealed class EditorBoundsInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public RectF? EditorBounds { get; }
+        public RectF? HandwritingBounds { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public EditorBoundsInfo Build();
+            public EditorBoundsInfo.Builder SetEditorBounds(RectF? bounds);
+            public EditorBoundsInfo.Builder SetHandwritingBounds(RectF? bounds);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public interface IInputConnection : IDisposable, IJavaObject, IJavaPeerable {
+        bool CommitText(ICharSequence text, int newCursorPosition, TextAttribute? textAttribute);
+        bool CommitText(string text, int newCursorPosition, TextAttribute? textAttribute);
+        bool RequestCursorUpdates(int cursorUpdateMode, int cursorUpdateFilter);
+        bool SetComposingRegion(int start, int end, TextAttribute textAttribute);
+        bool SetComposingText(ICharSequence text, int newCursorPosition, TextAttribute? textAttribute);
+        bool SetComposingText(string text, int newCursorPosition, TextAttribute? textAttribute);
+        TextSnapshot TakeSnapshot();
     }
     public static class IInputConnectionExtensions {
+        public static bool CommitText(this IInputConnection self, string text, int newCursorPosition, TextAttribute? textAttribute);
+        public static bool SetComposingText(this IInputConnection self, string text, int newCursorPosition, TextAttribute? textAttribute);
     }
     public abstract class InputConnection : Object {
+        public const CursorUpdateFilter CursorUpdateFilterCharacterBounds = CursorUpdateFilter.CharacterBounds;
+        public const CursorUpdateFilter CursorUpdateFilterEditorBounds = CursorUpdateFilter.EditorBounds;
+        public const CursorUpdateFilter CursorUpdateFilterInsertionMarker = CursorUpdateFilter.InsertionMarker;
     }
     public class InputConnectionWrapper : Object, IDisposable, IInputConnection, IJavaObject, IJavaPeerable {
+        public virtual bool CommitText(ICharSequence text, int newCursorPosition, TextAttribute? textAttribute);
+        public bool CommitText(string text, int newCursorPosition, TextAttribute? textAttribute);
+        public virtual bool SetComposingRegion(int start, int end, TextAttribute textAttribute);
+        public virtual bool SetComposingText(ICharSequence text, int newCursorPosition, TextAttribute? textAttribute);
+        public bool SetComposingText(string text, int newCursorPosition, TextAttribute? textAttribute);
         public static class InterfaceConsts {
+            public const CursorUpdateFilter CursorUpdateFilterCharacterBounds = CursorUpdateFilter.CharacterBounds;
+            public const CursorUpdateFilter CursorUpdateFilterEditorBounds = CursorUpdateFilter.EditorBounds;
+            public const CursorUpdateFilter CursorUpdateFilterInsertionMarker = CursorUpdateFilter.InsertionMarker;
         }
     }
     public sealed class InputMethodInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public bool SupportsStylusHandwriting();
     }
     public sealed class InputMethodManager : Object {
+        public void InvalidateInput(View view);
+        public void StartStylusHandwriting(View view);
     }
+    public sealed class TextAttribute : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public PersistableBundle Extras { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<string> TextConversionSuggestions { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public TextAttribute Build();
+            public TextAttribute.Builder SetExtras(PersistableBundle extras);
+            public TextAttribute.Builder SetTextConversionSuggestions(IList<string> textConversionSuggestions);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class TextSnapshot : Object {
+        public TextSnapshot(SurroundingText surroundingText, int compositionStart, int compositionEnd, int cursorCapsMode);
+        public int CompositionEnd { get; }
+        public int CompositionStart { get; }
+        public int CursorCapsMode { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int SelectionEnd { get; }
+        public int SelectionStart { get; }
+        public SurroundingText SurroundingText { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
 }

Android.Views.Translation

 namespace Android.Views.Translation {
     public interface IUiTranslationStateCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnFinished(string packageName);
+        void OnPaused(string packageName);
+        void OnResumed(ULocale sourceLocale, ULocale targetLocale, string packageName);
+        void OnStarted(ULocale sourceLocale, ULocale targetLocale, string packageName);
     }
 }

Android.Webkit

 namespace Android.Webkit {
     public abstract class WebSettings : Object {
+        public virtual bool AlgorithmicDarkeningAllowed { get; set; }
     }
 }

Android.Widget

 namespace Android.Widget {
     public abstract class AbsListView : AdapterView<IListAdapter>, Filter.IFilterListener, IDisposable, IJavaObject, IJavaPeerable, INoCopySpan, ITextWatcher, ViewTreeObserver.IOnGlobalLayoutListener, ViewTreeObserver.IOnTouchModeChangeListener {
+        public virtual bool SelectedChildViewEnabled { get; set; }
     }
     public class TextView : View, IDisposable, IJavaObject, IJavaPeerable, ViewTreeObserver.IOnPreDrawListener {
+        public virtual int LineBreakStyle { get; set; }
+        public virtual int LineBreakWordStyle { get; set; }
     }
 }

Android.Window

 namespace Android.Window {
+    public interface IOnBackInvokedCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnBackInvoked();
+    }
+    public interface IOnBackInvokedDispatcher : IDisposable, IJavaObject, IJavaPeerable {
+        public const int PriorityDefault = 0;
+        public const int PriorityOverlay = 1000000;
+        void RegisterOnBackInvokedCallback(int priority, IOnBackInvokedCallback callback);
+        void UnregisterOnBackInvokedCallback(IOnBackInvokedCallback callback);
+    }
+    public abstract class SplashScreen : Object {
+        public const SplashScreenStyle SplashScreenStyleIcon = SplashScreenStyle.Icon;
+        public const SplashScreenStyle SplashScreenStyleSolidColor = SplashScreenStyle.SolidColor;
+    }
+    public enum SplashScreenStyle {
+        Icon = 1,
+        SolidColor = 0,
+    }
 }

Java.IO

 namespace Java.IO {
     public class ByteArrayOutputStream : OutputStream {
+        public virtual string ToString(Charset charset);
+        public virtual void WriteBytes(byte[]? b);
     }
     public class FileReader : InputStreamReader {
+        public FileReader(File? file, Charset? charset);
+        public FileReader(string? fileName, Charset? charset);
     }
     public class FileWriter : OutputStreamWriter {
-        public FileWriter(File? file);
+        public FileWriter(File file);
+        public FileWriter(File file, Charset charset);
+        public FileWriter(File file, Charset charset, bool append);
-        public FileWriter(File? file, bool append);
+        public FileWriter(File file, bool append);
-        public FileWriter(FileDescriptor? fd);
+        public FileWriter(FileDescriptor fd);
-        public FileWriter(string? fileName);
+        public FileWriter(string fileName);
+        public FileWriter(string fileName, Charset charset);
+        public FileWriter(string fileName, Charset charset, bool append);
-        public FileWriter(string? fileName, bool append);
+        public FileWriter(string fileName, bool append);
     }
     public abstract class InputStream : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public static Stream? NullInputStream();
+        public virtual byte[]? ReadAllBytes();
+        public virtual int ReadNBytes(byte[]? b, int off, int len);
+        public virtual byte[]? ReadNBytes(int len);
+        public virtual long TransferTo(Stream? @out);
     }
     public abstract class ObjectStreamException : IOException {
-        protected ObjectStreamException(string? classname);
+        protected ObjectStreamException(string? message);
     }
     public abstract class OutputStream : Object, ICloseable, IDisposable, IFlushable, IJavaObject, IJavaPeerable {
+        public static Stream? NullOutputStream();
     }
     public class PrintStream : FilterOutputStream, IAppendable, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public PrintStream(File file, Charset charset);
+        public PrintStream(Stream @out, bool autoFlush, Charset charset);
+        public PrintStream(string fileName, Charset charset);
     }
     public class PrintWriter : Writer {
+        public PrintWriter(File file, Charset charset);
+        public PrintWriter(Stream @out, bool autoFlush, Charset charset);
+        public PrintWriter(string fileName, Charset charset);
     }
     public abstract class Reader : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable, IReadable {
+        public static Reader? NullReader();
+        public virtual long TransferTo(Writer? @out);
     }
     public abstract class Writer : Object, IAppendable, ICloseable, IDisposable, IFlushable, IJavaObject, IJavaPeerable {
+        public static Writer NullWriter();
     }
 }

Java.Lang

 namespace Java.Lang {
     public abstract class AbstractStringBuilder : Object, IAppendable, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IJavaObject, IJavaPeerable {
+        IEnumerator IEnumerable.GetEnumerator();
-        IEnumerator IEnumerable.GetEnumerator();
     }
     public class IndexOutOfBoundsException : RuntimeException {
+        public IndexOutOfBoundsException(int index);
     }
     public sealed class Integer : Number, IComparable, IConvertible, IDisposable, IJavaObject, IJavaPeerable {
+        public static int ParseInt(ICharSequence s, int beginIndex, int endIndex, int radix);
+        public static int ParseInt(string s, int beginIndex, int endIndex, int radix);
+        public static int ParseUnsignedInt(ICharSequence s, int beginIndex, int endIndex, int radix);
+        public static int ParseUnsignedInt(string s, int beginIndex, int endIndex, int radix);
     }
     public sealed class Long : Number, IComparable, IConvertible, IDisposable, IJavaObject, IJavaPeerable {
+        public static long ParseLong(ICharSequence s, int beginIndex, int endIndex, int radix);
+        public static long ParseLong(string s, int beginIndex, int endIndex, int radix);
+        public static long ParseUnsignedLong(ICharSequence s, int beginIndex, int endIndex, int radix);
+        public static long ParseUnsignedLong(string s, int beginIndex, int endIndex, int radix);
     }
     public sealed class Math : Object {
+        public static double Fma(double a, double b, double c);
+        public static float Fma(float a, float b, float c);
     }
     public sealed class StrictMath : Object {
+        public static double Fma(double a, double b, double c);
+        public static float Fma(float a, float b, float c);
     }
     public sealed class String : Object, ICharSequence, IComparable, IDisposable, IEnumerable, IEnumerable<char>, IJavaObject, IJavaPeerable, ISerializable {
+        public bool IsBlank { get; }
+        IEnumerator IEnumerable.GetEnumerator();
+        public string Repeat(int count);
+        public string Strip();
+        public string StripLeading();
+        public string StripTrailing();
-        IEnumerator IEnumerable.GetEnumerator();
     }
     public sealed class StringBuffer : AbstractStringBuilder, IAppendable, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IJavaObject, IJavaPeerable, ISerializable {
+        IEnumerator IEnumerable.GetEnumerator();
-        IEnumerator IEnumerable.GetEnumerator();
     }
     public sealed class StringBuilder : AbstractStringBuilder, IAppendable, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IJavaObject, IJavaPeerable, ISerializable {
+        IEnumerator IEnumerable.GetEnumerator();
-        IEnumerator IEnumerable.GetEnumerator();
     }
     public class Thread : Object, IDisposable, IJavaObject, IJavaPeerable, IRunnable {
+        public Thread(ThreadGroup? group, IRunnable? target, string name, long stackSize, bool inheritThreadLocals);
+        public static void OnSpinWait();
     }
 }

Java.Lang.Invoke

 namespace Java.Lang.Invoke {
     public abstract class MethodHandle : Object {
+        public virtual MethodHandle AsCollector(int collectArgPos, Class arrayType, int arrayLength);
+        public virtual MethodHandle AsSpreader(int spreadArgPos, Class arrayType, int arrayLength);
+        public virtual MethodHandle WithVarargs(bool makeVarargs);
     }
     public class MethodHandles : Object {
+        public static MethodHandle ArrayConstructor(Class arrayClass);
+        public static VarHandle ArrayElementVarHandle(Class arrayClass);
+        public static MethodHandle ArrayLength(Class arrayClass);
+        public static VarHandle ByteArrayViewVarHandle(Class viewArrayClass, ByteOrder byteOrder);
+        public static VarHandle ByteBufferViewVarHandle(Class viewArrayClass, ByteOrder byteOrder);
+        public static MethodHandle CountedLoop(MethodHandle iterations, MethodHandle init, MethodHandle body);
+        public static MethodHandle CountedLoop(MethodHandle start, MethodHandle end, MethodHandle init, MethodHandle body);
+        public static MethodHandle DoWhileLoop(MethodHandle init, MethodHandle body, MethodHandle pred);
+        public static MethodHandle DropArgumentsToMatch(MethodHandle target, int skip, IList<Class>? newTypes, int pos);
+        public static MethodHandle Empty(MethodType type);
+        public static MethodHandle FoldArguments(MethodHandle target, int pos, MethodHandle combiner);
+        public static MethodHandle IteratedLoop(MethodHandle iterator, MethodHandle init, MethodHandle body);
+        public static MethodHandle Loop(params MethodHandle[][]? clauses);
+        public static MethodHandles.Lookup PrivateLookupIn(Class targetClass, MethodHandles.Lookup lookup);
+        public static MethodHandle TryFinally(MethodHandle target, MethodHandle cleanup);
+        public static MethodHandle VarHandleExactInvoker(VarHandle.AccessMode accessMode, MethodType type);
+        public static MethodHandle VarHandleInvoker(VarHandle.AccessMode accessMode, MethodType type);
+        public static MethodHandle WhileLoop(MethodHandle init, MethodHandle pred, MethodHandle body);
+        public static MethodHandle Zero(Class type);
         public sealed class Lookup : Object {
+            public VarHandle FindStaticVarHandle(Class decl, string name, Class type);
+            public VarHandle FindVarHandle(Class recv, string name, Class type);
+            public VarHandle UnreflectVarHandle(Field f);
         }
     }
     public sealed class MethodType : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public Class LastParameterType();
     }
+    public abstract class VarHandle : Object {
+        protected VarHandle(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public MethodType AccessModeType(VarHandle.AccessMode accessMode);
+        public static void AcquireFence();
+        public Object CompareAndExchange(params Object[]? args);
+        public Object CompareAndExchangeAcquire(params Object[]? args);
+        public Object CompareAndExchangeRelease(params Object[]? args);
+        public bool CompareAndSet(params Object[]? args);
+        public IList<Class>? CoordinateTypes();
+        public static void FullFence();
+        public Object Get(params Object[]? args);
+        public Object GetAcquire(params Object[]? args);
+        public Object GetAndAdd(params Object[]? args);
+        public Object GetAndAddAcquire(params Object[]? args);
+        public Object GetAndAddRelease(params Object[]? args);
+        public Object GetAndBitwiseAnd(params Object[]? args);
+        public Object GetAndBitwiseAndAcquire(params Object[]? args);
+        public Object GetAndBitwiseAndRelease(params Object[]? args);
+        public Object GetAndBitwiseOr(params Object[]? args);
+        public Object GetAndBitwiseOrAcquire(params Object[]? args);
+        public Object GetAndBitwiseOrRelease(params Object[]? args);
+        public Object GetAndBitwiseXor(params Object[]? args);
+        public Object GetAndBitwiseXorAcquire(params Object[]? args);
+        public Object GetAndBitwiseXorRelease(params Object[]? args);
+        public Object GetAndSet(params Object[]? args);
+        public Object GetAndSetAcquire(params Object[]? args);
+        public Object GetAndSetRelease(params Object[]? args);
+        public Object GetOpaque(params Object[]? args);
+        public Object GetVolatile(params Object[]? args);
+        public bool IsAccessModeSupported(VarHandle.AccessMode accessMode);
+        public static void LoadLoadFence();
+        public static void ReleaseFence();
+        public void Set(params Object[]? args);
+        public void SetOpaque(params Object[]? args);
+        public void SetRelease(params Object[]? args);
+        public void SetVolatile(params Object[]? args);
+        public static void StoreStoreFence();
+        public MethodHandle ToMethodHandle(VarHandle.AccessMode accessMode);
+        public Class VarType();
+        public bool WeakCompareAndSet(params Object[]? args);
+        public bool WeakCompareAndSetAcquire(params Object[]? args);
+        public bool WeakCompareAndSetPlain(params Object[]? args);
+        public bool WeakCompareAndSetRelease(params Object[]? args);
+        public sealed class AccessMode : Enum {
+            public static VarHandle.AccessMode CompareAndExchange { get; }
+            public static VarHandle.AccessMode CompareAndExchangeAcquire { get; }
+            public static VarHandle.AccessMode CompareAndExchangeRelease { get; }
+            public static VarHandle.AccessMode CompareAndSet { get; }
+            public static VarHandle.AccessMode Get { get; }
+            public static VarHandle.AccessMode GetAcquire { get; }
+            public static VarHandle.AccessMode GetAndAdd { get; }
+            public static VarHandle.AccessMode GetAndAddAcquire { get; }
+            public static VarHandle.AccessMode GetAndAddRelease { get; }
+            public static VarHandle.AccessMode GetAndBitwiseAnd { get; }
+            public static VarHandle.AccessMode GetAndBitwiseAndAcquire { get; }
+            public static VarHandle.AccessMode GetAndBitwiseAndRelease { get; }
+            public static VarHandle.AccessMode GetAndBitwiseOr { get; }
+            public static VarHandle.AccessMode GetAndBitwiseOrAcquire { get; }
+            public static VarHandle.AccessMode GetAndBitwiseOrRelease { get; }
+            public static VarHandle.AccessMode GetAndBitwiseXor { get; }
+            public static VarHandle.AccessMode GetAndBitwiseXorAcquire { get; }
+            public static VarHandle.AccessMode GetAndBitwiseXorRelease { get; }
+            public static VarHandle.AccessMode GetAndSet { get; }
+            public static VarHandle.AccessMode GetAndSetAcquire { get; }
+            public static VarHandle.AccessMode GetAndSetRelease { get; }
+            public static VarHandle.AccessMode GetOpaque { get; }
+            public static VarHandle.AccessMode GetVolatile { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public static VarHandle.AccessMode Set { get; }
+            public static VarHandle.AccessMode SetOpaque { get; }
+            public static VarHandle.AccessMode SetRelease { get; }
+            public static VarHandle.AccessMode SetVolatile { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static VarHandle.AccessMode WeakCompareAndSet { get; }
+            public static VarHandle.AccessMode WeakCompareAndSetAcquire { get; }
+            public static VarHandle.AccessMode WeakCompareAndSetPlain { get; }
+            public static VarHandle.AccessMode WeakCompareAndSetRelease { get; }
+            public string MethodName();
+            public static VarHandle.AccessMode ValueFromMethodName(string methodName);
+            public static VarHandle.AccessMode ValueOf(string name);
+            public static VarHandle.AccessMode[]? Values();
+        }
+    }
 }

Java.Lang.Ref

 namespace Java.Lang.Ref {
+    public sealed class Cleaner : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public static Cleaner? Create();
+        public static Cleaner? Create(IThreadFactory? threadFactory);
+        public Cleaner.ICleanable? Register(Object? obj, IRunnable? action);
+        public interface ICleanable : IDisposable, IJavaObject, IJavaPeerable {
+            void Clean();
+        }
+    }
     public abstract class Reference : Object {
+        public bool RefersTo(Object? obj);
     }
 }

Java.Lang.Reflect

 namespace Java.Lang.Reflect {
     public class MalformedParameterizedTypeException : RuntimeException {
+        public MalformedParameterizedTypeException(string? message);
     }
 }

Java.Math

 namespace Java.Math {
     public class BigDecimal : Number, IComparable, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public virtual BigDecimal Sqrt(MathContext mc);
     }
     public class BigInteger : Number, IComparable, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public BigInteger(byte[]? val, int off, int len);
+        public BigInteger(int signum, byte[]? magnitude, int off, int len);
+        public static BigInteger Two { get; }
+        public virtual BigInteger Sqrt();
+        public virtual BigInteger[] SqrtAndRemainder();
     }
 }

Java.Net

 namespace Java.Net {
     public class DatagramSocket : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual Object GetOption(ISocketOption name);
+        public virtual DatagramSocket SetOption(ISocketOption name, Object value);
+        public virtual ICollection<ISocketOption>? SupportedOptions();
     }
     public abstract class DatagramSocketImpl : Object, IDisposable, IJavaObject, IJavaPeerable, ISocketOptions {
+        protected virtual Object GetOption(ISocketOption name);
+        protected virtual void SetOption(ISocketOption name, Object value);
+        protected virtual ICollection<ISocketOption>? SupportedOptions();
         public static class InterfaceConsts {
+            public const SocketOption SoReuseport = SocketOption.ReusePort;
         }
     }
     public class ProtocolException : IOException {
-        public ProtocolException(string? host);
+        public ProtocolException(string? message);
     }
     public class ServerSocket : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual Object GetOption(ISocketOption name);
+        public virtual ServerSocket SetOption(ISocketOption name, Object value);
+        public virtual ICollection<ISocketOption>? SupportedOptions();
     }
     public class Socket : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual Object GetOption(ISocketOption name);
+        public virtual Socket SetOption(ISocketOption name, Object value);
+        public virtual ICollection<ISocketOption>? SupportedOptions();
     }
     public abstract class SocketImpl : Object, IDisposable, IJavaObject, IJavaPeerable, ISocketOptions {
+        protected virtual Object GetOption(ISocketOption name);
+        protected virtual void SetOption(ISocketOption name, Object value);
+        protected virtual ICollection<ISocketOption>? SupportedOptions();
         public static class InterfaceConsts {
+            public const SocketOption SoReuseport = SocketOption.ReusePort;
         }
     }
     public enum SocketOption {
+        ReusePort = 14,
     }
     public abstract class SocketOptions : Object {
+        public const SocketOption SoReuseport = SocketOption.ReusePort;
     }
     public sealed class StandardSocketOptions : Object {
+        public static ISocketOption SoReuseport { get; }
     }
     public class UnknownHostException : IOException {
-        public UnknownHostException(string? host);
+        public UnknownHostException(string? message);
     }
     public class URLDecoder : Object {
+        public static string? Decode(string? s, Charset? charset);
     }
     public class URLEncoder : Object {
+        public static string? Encode(string? s, Charset? charset);
     }
 }

Java.Nio

 namespace Java.Nio {
     public abstract class ByteBuffer : Buffer, IComparable, IDisposable, IJavaObject, IJavaPeerable {
+        public ByteBuffer AlignedSlice(int unitSize);
+        public int AlignmentOffset(int index, int unitSize);
     }
     public abstract class CharBuffer : Buffer, IAppendable, ICharSequence, IComparable, IDisposable, IEnumerable, IEnumerable<char>, IJavaObject, IJavaPeerable, IReadable {
+        IEnumerator IEnumerable.GetEnumerator();
-        IEnumerator IEnumerable.GetEnumerator();
     }
 }

Java.Nio.Channels

 namespace Java.Nio.Channels {
     public sealed class Channels : Object {
+        public static Reader NewReader(IReadableByteChannel ch, Charset charset);
+        public static Writer NewWriter(IWritableByteChannel ch, Charset charset);
     }
     public abstract class SelectionKey : Object {
+        public virtual int InterestOpsAnd(int ops);
+        public virtual int InterestOpsOr(int ops);
     }
     public abstract class Selector : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
-        public static Selector? Open();
+        public static Selector Open();
-        public abstract SelectorProvider? Provider();
+        public abstract SelectorProvider Provider();
+        public virtual int Select(IConsumer action);
+        public virtual int Select(IConsumer action, long timeout);
+        public virtual int SelectNow(IConsumer action);
-        public abstract Selector? Wakeup();
+        public abstract Selector Wakeup();
     }
 }

Java.Nio.FileNio

 namespace Java.Nio.FileNio {
     public abstract class FileStore : Object {
+        public virtual long BlockSize { get; }
     }
 }

Java.Security

 namespace Java.Security {
     public class KeyStore : Object {
+        public static KeyStore GetInstance(File file, KeyStore.ILoadStoreParameter param);
+        public static KeyStore GetInstance(File file, char[] password);
         public abstract class Builder : Object {
+            public static KeyStore.Builder NewInstance(File file, KeyStore.IProtectionParameter protection);
         }
     }
     public abstract class KeyStoreSpi : Object {
+        public virtual bool EngineProbe(Stream stream);
     }
 }

Java.Security.Cert

 namespace Java.Security.Cert {
+    public sealed class URICertStoreParameters : Object, ICertStoreParameters, ICloneable, IDisposable, IJavaObject, IJavaPeerable {
+        public URICertStoreParameters(URI? uri);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public URI? URI { get; }
+        public new Object? Clone();
+    }
 }

Java.Security.Interfaces

 namespace Java.Security.Interfaces {
+    public interface IEdECKey : IDisposable, IJavaObject, IJavaPeerable {
+        NamedParameterSpec? Params { get; }
+    }
+    public interface IEdECPrivateKey : IDisposable, IEdECKey, IJavaObject, IJavaPeerable, IKey, IPrivateKey, ISerializable {
+        Optional? Bytes { get; }
+    }
+    public interface IEdECPublicKey : IDisposable, IEdECKey, IJavaObject, IJavaPeerable, IKey, IPublicKey, ISerializable {
+        EdECPoint? Point { get; }
+    }
+    public interface IXECKey : IDisposable, IJavaObject, IJavaPeerable {
+        IAlgorithmParameterSpec? Params { get; }
+    }
+    public interface IXECPrivateKey : IDisposable, IJavaObject, IJavaPeerable, IKey, IPrivateKey, ISerializable, IXECKey {
+        Optional? Scalar { get; }
+    }
+    public interface IXECPublicKey : IDisposable, IJavaObject, IJavaPeerable, IKey, IPublicKey, ISerializable, IXECKey {
+        BigInteger? GetU();
+    }
 }

Java.Security.Spec

 namespace Java.Security.Spec {
-    public class ECGenParameterSpec : Object, IAlgorithmParameterSpec, IDisposable, IJavaObject, IJavaPeerable {
+    public class ECGenParameterSpec : NamedParameterSpec, IAlgorithmParameterSpec, IDisposable, IJavaObject, IJavaPeerable {
-        public virtual string? Name { get; }
+        public override string? Name { get; }
     }
+    public sealed class EdECPoint : Object {
+        public EdECPoint(bool xOdd, BigInteger y);
+        public bool IsXOdd { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public BigInteger GetY();
+    }
+    public sealed class EdECPrivateKeySpec : Object, IDisposable, IJavaObject, IJavaPeerable, IKeySpec {
+        public EdECPrivateKeySpec(NamedParameterSpec @params, byte[] bytes);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public NamedParameterSpec Params { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public byte[] GetBytes();
+    }
+    public sealed class EdECPublicKeySpec : Object, IDisposable, IJavaObject, IJavaPeerable, IKeySpec {
+        public EdECPublicKeySpec(NamedParameterSpec @params, EdECPoint point);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public NamedParameterSpec Params { get; }
+        public EdECPoint Point { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public class NamedParameterSpec : Object, IAlgorithmParameterSpec, IDisposable, IJavaObject, IJavaPeerable {
+        protected NamedParameterSpec(IntPtr javaReference, JniHandleOwnership transfer);
+        public NamedParameterSpec(string stdName);
+        public static NamedParameterSpec? Ed25519 { get; }
+        public static NamedParameterSpec? Ed448 { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual string Name { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public static NamedParameterSpec? X25519 { get; }
+        public static NamedParameterSpec? X448 { get; }
+    }
+    public class XECPrivateKeySpec : Object, IDisposable, IJavaObject, IJavaPeerable, IKeySpec {
+        public XECPrivateKeySpec(IAlgorithmParameterSpec? @params, byte[]? scalar);
+        protected XECPrivateKeySpec(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual IAlgorithmParameterSpec? Params { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual byte[]? GetScalar();
+    }
+    public class XECPublicKeySpec : Object, IDisposable, IJavaObject, IJavaPeerable, IKeySpec {
+        public XECPublicKeySpec(IAlgorithmParameterSpec? @params, BigInteger? u);
+        protected XECPublicKeySpec(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual IAlgorithmParameterSpec? Params { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual BigInteger? GetU();
+    }
 }

Java.Util

 namespace Java.Util {
     public class Arrays : Object {
+        public static int Compare(Object[]? a, Object[]? b);
+        public static int Compare(Object[]? a, Object[]? b, IComparator cmp);
+        public static int Compare(Object[] a, int aFromIndex, int aToIndex, Object[] b, int bFromIndex, int bToIndex);
+        public static int Compare(Object[] a, int aFromIndex, int aToIndex, Object[] b, int bFromIndex, int bToIndex, IComparator cmp);
+        public static int Compare(bool[]? a, bool[]? b);
+        public static int Compare(bool[] a, int aFromIndex, int aToIndex, bool[] b, int bFromIndex, int bToIndex);
+        public static int Compare(byte[]? a, byte[]? b);
+        public static int Compare(byte[] a, int aFromIndex, int aToIndex, byte[] b, int bFromIndex, int bToIndex);
+        public static int Compare(char[]? a, char[]? b);
+        public static int Compare(char[] a, int aFromIndex, int aToIndex, char[] b, int bFromIndex, int bToIndex);
+        public static int Compare(double[]? a, double[]? b);
+        public static int Compare(double[] a, int aFromIndex, int aToIndex, double[] b, int bFromIndex, int bToIndex);
+        public static int Compare(short[]? a, short[]? b);
+        public static int Compare(short[] a, int aFromIndex, int aToIndex, short[] b, int bFromIndex, int bToIndex);
+        public static int Compare(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex);
+        public static int Compare(int[]? a, int[]? b);
+        public static int Compare(long[] a, int aFromIndex, int aToIndex, long[] b, int bFromIndex, int bToIndex);
+        public static int Compare(long[]? a, long[]? b);
+        public static int Compare(float[] a, int aFromIndex, int aToIndex, float[] b, int bFromIndex, int bToIndex);
+        public static int Compare(float[]? a, float[]? b);
+        public static int CompareUnsigned(byte[]? a, byte[]? b);
+        public static int CompareUnsigned(byte[] a, int aFromIndex, int aToIndex, byte[] b, int bFromIndex, int bToIndex);
+        public static int CompareUnsigned(short[]? a, short[]? b);
+        public static int CompareUnsigned(short[] a, int aFromIndex, int aToIndex, short[] b, int bFromIndex, int bToIndex);
+        public static int CompareUnsigned(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex);
+        public static int CompareUnsigned(int[]? a, int[]? b);
+        public static int CompareUnsigned(long[] a, int aFromIndex, int aToIndex, long[] b, int bFromIndex, int bToIndex);
+        public static int CompareUnsigned(long[]? a, long[]? b);
+        public static bool Equals(Object[]? a, Object[]? a2, IComparator cmp);
+        public static bool Equals(Object[] a, int aFromIndex, int aToIndex, Object[] b, int bFromIndex, int bToIndex);
+        public static bool Equals(Object[] a, int aFromIndex, int aToIndex, Object[] b, int bFromIndex, int bToIndex, IComparator cmp);
+        public static bool Equals(bool[] a, int aFromIndex, int aToIndex, bool[] b, int bFromIndex, int bToIndex);
+        public static bool Equals(byte[] a, int aFromIndex, int aToIndex, byte[] b, int bFromIndex, int bToIndex);
+        public static bool Equals(char[] a, int aFromIndex, int aToIndex, char[] b, int bFromIndex, int bToIndex);
+        public static bool Equals(double[] a, int aFromIndex, int aToIndex, double[] b, int bFromIndex, int bToIndex);
+        public static bool Equals(short[] a, int aFromIndex, int aToIndex, short[] b, int bFromIndex, int bToIndex);
+        public static bool Equals(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex);
+        public static bool Equals(long[] a, int aFromIndex, int aToIndex, long[] b, int bFromIndex, int bToIndex);
+        public static bool Equals(float[] a, int aFromIndex, int aToIndex, float[] b, int bFromIndex, int bToIndex);
+        public static int Mismatch(Object[] a, Object[] b);
+        public static int Mismatch(Object[] a, Object[] b, IComparator cmp);
+        public static int Mismatch(Object[] a, int aFromIndex, int aToIndex, Object[] b, int bFromIndex, int bToIndex);
+        public static int Mismatch(Object[] a, int aFromIndex, int aToIndex, Object[] b, int bFromIndex, int bToIndex, IComparator cmp);
+        public static int Mismatch(bool[] a, bool[] b);
+        public static int Mismatch(bool[] a, int aFromIndex, int aToIndex, bool[] b, int bFromIndex, int bToIndex);
+        public static int Mismatch(byte[] a, byte[] b);
+        public static int Mismatch(byte[]? a, int aFromIndex, int aToIndex, byte[]? b, int bFromIndex, int bToIndex);
+        public static int Mismatch(char[] a, char[] b);
+        public static int Mismatch(char[] a, int aFromIndex, int aToIndex, char[] b, int bFromIndex, int bToIndex);
+        public static int Mismatch(double[] a, double[] b);
+        public static int Mismatch(double[] a, int aFromIndex, int aToIndex, double[] b, int bFromIndex, int bToIndex);
+        public static int Mismatch(short[] a, short[] b);
+        public static int Mismatch(short[] a, int aFromIndex, int aToIndex, short[] b, int bFromIndex, int bToIndex);
+        public static int Mismatch(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex);
+        public static int Mismatch(int[] a, int[] b);
+        public static int Mismatch(long[] a, int aFromIndex, int aToIndex, long[] b, int bFromIndex, int bToIndex);
+        public static int Mismatch(long[] a, long[] b);
+        public static int Mismatch(float[] a, int aFromIndex, int aToIndex, float[] b, int bFromIndex, int bToIndex);
+        public static int Mismatch(float[] a, float[] b);
     }
     public interface ICollection : IDisposable, IIterable, IJavaObject, IJavaPeerable {
+        Object[] ToArray(IIntFunction generator);
     }
     public interface IEnumeration : IDisposable, IJavaObject, IJavaPeerable {
+        IIterator? AsIterator();
     }
     public class IntSummaryStatistics : Object, IDisposable, IIntConsumer, IJavaObject, IJavaPeerable {
+        public IntSummaryStatistics(long count, int min, int max, long sum);
     }
     public class LongSummaryStatistics : Object, IDisposable, IIntConsumer, IJavaObject, IJavaPeerable, ILongConsumer {
+        public LongSummaryStatistics(long count, long min, long max, long sum);
     }
     public sealed class Optional : Object {
+        public bool IsEmpty { get; }
-        public void IfPresent(IConsumer consumer);
+        public void IfPresent(IConsumer action);
+        public void IfPresentOrElse(IConsumer action, IRunnable emptyAction);
+        public Optional Or(ISupplier supplier);
-        public Object OrElseGet(ISupplier other);
+        public Object OrElseGet(ISupplier supplier);
+        public Object OrElseThrow();
     }
     public sealed class OptionalDouble : Object {
+        public bool IsEmpty { get; }
-        public static OptionalDouble? Empty();
+        public static OptionalDouble Empty();
-        public void IfPresent(IDoubleConsumer? consumer);
+        public void IfPresent(IDoubleConsumer action);
+        public void IfPresentOrElse(IDoubleConsumer action, IRunnable emptyAction);
-        public static OptionalDouble? Of(double value);
+        public static OptionalDouble Of(double value);
-        public double OrElseGet(IDoubleSupplier? other);
+        public double OrElseGet(IDoubleSupplier supplier);
+        public double OrElseThrow();
-        public double OrElseThrow(ISupplier? exceptionSupplier);
+        public double OrElseThrow(ISupplier exceptionSupplier);
     }
     public sealed class OptionalInt : Object {
+        public bool IsEmpty { get; }
-        public static OptionalInt? Empty();
+        public static OptionalInt Empty();
-        public void IfPresent(IIntConsumer? consumer);
+        public void IfPresent(IIntConsumer action);
+        public void IfPresentOrElse(IIntConsumer action, IRunnable emptyAction);
-        public static OptionalInt? Of(int value);
+        public static OptionalInt Of(int value);
-        public int OrElseGet(IIntSupplier? other);
+        public int OrElseGet(IIntSupplier supplier);
+        public int OrElseThrow();
-        public int OrElseThrow(ISupplier? exceptionSupplier);
+        public int OrElseThrow(ISupplier exceptionSupplier);
     }
     public sealed class OptionalLong : Object {
+        public bool IsEmpty { get; }
-        public static OptionalLong? Empty();
+        public static OptionalLong Empty();
-        public void IfPresent(ILongConsumer? consumer);
+        public void IfPresent(ILongConsumer action);
+        public void IfPresentOrElse(ILongConsumer action, IRunnable emptyAction);
-        public static OptionalLong? Of(long value);
+        public static OptionalLong Of(long value);
-        public long OrElseGet(ILongSupplier? other);
+        public long OrElseGet(ILongSupplier supplier);
+        public long OrElseThrow();
-        public long OrElseThrow(ISupplier? exceptionSupplier);
+        public long OrElseThrow(ISupplier exceptionSupplier);
     }
     public sealed class SplittableRandom : Object {
+        public void NextBytes(byte[]? bytes);
     }
 }

Java.Util.Concurrent

 namespace Java.Util.Concurrent {
     public class ArrayBlockingQueue : AbstractQueue, IBlockingQueue, ICollection, IDisposable, IIterable, IJavaObject, IJavaPeerable, IQueue, ISerializable {
+        public virtual void ForEach(IConsumer action);
+        public virtual bool RemoveIf(IPredicate filter);
     }
     public class ConcurrentLinkedDeque : AbstractCollection, ICollection, IDeque, IDisposable, IIterable, IJavaObject, IJavaPeerable, IQueue, ISerializable {
+        public virtual void ForEach(IConsumer action);
+        public virtual bool RemoveIf(IPredicate filter);
     }
     public class ConcurrentLinkedQueue : AbstractQueue, ICollection, IDisposable, IIterable, IJavaObject, IJavaPeerable, IQueue, ISerializable {
+        public virtual void ForEach(IConsumer action);
+        public virtual bool RemoveIf(IPredicate filter);
     }
     public class ForkJoinPool : AbstractExecutorService {
+        public ForkJoinPool(int parallelism, ForkJoinPool.IForkJoinWorkerThreadFactory factory, Thread.IUncaughtExceptionHandler handler, bool asyncMode, int corePoolSize, int maximumPoolSize, int minimumRunnable, IPredicate saturate, long keepAliveTime, TimeUnit unit);
     }
     public class LinkedBlockingDeque : AbstractQueue, IBlockingDeque, IBlockingQueue, ICollection, IDeque, IDisposable, IIterable, IJavaObject, IJavaPeerable, IQueue, ISerializable {
+        public virtual void ForEach(IConsumer action);
+        public virtual bool RemoveIf(IPredicate filter);
     }
     public class LinkedBlockingQueue : AbstractQueue, IBlockingQueue, ICollection, IDisposable, IIterable, IJavaObject, IJavaPeerable, IQueue, ISerializable {
+        public virtual void ForEach(IConsumer action);
+        public virtual bool RemoveIf(IPredicate filter);
     }
     public class LinkedTransferQueue : AbstractQueue, IBlockingQueue, ICollection, IDisposable, IIterable, IJavaObject, IJavaPeerable, IQueue, ISerializable, ITransferQueue {
+        public virtual void ForEach(IConsumer action);
+        public virtual bool RemoveIf(IPredicate filter);
     }
     public class PriorityBlockingQueue : AbstractQueue, IBlockingQueue, ICollection, IDisposable, IIterable, IJavaObject, IJavaPeerable, IQueue, ISerializable {
+        public virtual void ForEach(IConsumer action);
+        public virtual bool RemoveIf(IPredicate filter);
     }
+    public class SubmissionPublisher : Object, Flow.IPublisher, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public SubmissionPublisher();
+        public SubmissionPublisher(IExecutor executor, int maxBufferCapacity);
+        public SubmissionPublisher(IExecutor executor, int maxBufferCapacity, IBiConsumer handler);
+        protected SubmissionPublisher(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual Throwable ClosedException { get; }
+        public virtual IExecutor Executor { get; }
+        public virtual bool HasSubscribers { get; }
+        public virtual bool IsClosed { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual int MaxBufferCapacity { get; }
+        public virtual int NumberOfSubscribers { get; }
+        public virtual IList Subscribers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void Close();
+        public virtual void CloseExceptionally(Throwable error);
+        public virtual CompletableFuture Consume(IConsumer consumer);
+        public virtual int EstimateMaximumLag();
+        public virtual long EstimateMinimumDemand();
+        public virtual bool IsSubscribed(Flow.ISubscriber subscriber);
+        public virtual int Offer(Object item, IBiPredicate onDrop);
+        public virtual int Offer(Object item, long timeout, TimeUnit unit, IBiPredicate onDrop);
+        public virtual int Submit(Object item);
+        public virtual void Subscribe(Flow.ISubscriber subscriber);
+    }
 }

Java.Util.Concurrent.Atomic

 namespace Java.Util.Concurrent.Atomic {
     public class AtomicBoolean : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public bool Acquire { get; }
+        public bool Opaque { get; set; }
+        public bool Plain { get; set; }
+        public bool CompareAndExchange(bool expectedValue, bool newValue);
+        public bool CompareAndExchangeAcquire(bool expectedValue, bool newValue);
+        public bool CompareAndExchangeRelease(bool expectedValue, bool newValue);
-        public bool CompareAndSet(bool expect, bool update);
+        public bool CompareAndSet(bool expectedValue, bool newValue);
+        public void SetRelease(bool newValue);
-        public virtual bool WeakCompareAndSet(bool expect, bool update);
+        public virtual bool WeakCompareAndSet(bool expectedValue, bool newValue);
+        public bool WeakCompareAndSetAcquire(bool expectedValue, bool newValue);
+        public virtual bool WeakCompareAndSetPlain(bool expectedValue, bool newValue);
+        public bool WeakCompareAndSetRelease(bool expectedValue, bool newValue);
+        public bool WeakCompareAndSetVolatile(bool expectedValue, bool newValue);
     }
     public class AtomicInteger : Number, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public int Acquire { get; }
+        public int Opaque { get; set; }
+        public int Plain { get; set; }
+        public int CompareAndExchange(int expectedValue, int newValue);
+        public int CompareAndExchangeAcquire(int expectedValue, int newValue);
+        public int CompareAndExchangeRelease(int expectedValue, int newValue);
-        public bool CompareAndSet(int expect, int update);
+        public bool CompareAndSet(int expectedValue, int newValue);
+        public void SetRelease(int newValue);
-        public bool WeakCompareAndSet(int expect, int update);
+        public bool WeakCompareAndSet(int expectedValue, int newValue);
+        public bool WeakCompareAndSetAcquire(int expectedValue, int newValue);
+        public bool WeakCompareAndSetPlain(int expectedValue, int newValue);
+        public bool WeakCompareAndSetRelease(int expectedValue, int newValue);
+        public bool WeakCompareAndSetVolatile(int expectedValue, int newValue);
     }
     public class AtomicIntegerArray : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public int CompareAndExchange(int i, int expectedValue, int newValue);
+        public int CompareAndExchangeAcquire(int i, int expectedValue, int newValue);
+        public int CompareAndExchangeRelease(int i, int expectedValue, int newValue);
-        public bool CompareAndSet(int i, int expect, int update);
+        public bool CompareAndSet(int i, int expectedValue, int newValue);
+        public int GetAcquire(int i);
+        public int GetOpaque(int i);
+        public int GetPlain(int i);
+        public void SetOpaque(int i, int newValue);
+        public void SetPlain(int i, int newValue);
+        public void SetRelease(int i, int newValue);
-        public bool WeakCompareAndSet(int i, int expect, int update);
+        public bool WeakCompareAndSet(int i, int expectedValue, int newValue);
+        public bool WeakCompareAndSetAcquire(int i, int expectedValue, int newValue);
+        public bool WeakCompareAndSetPlain(int i, int expectedValue, int newValue);
+        public bool WeakCompareAndSetRelease(int i, int expectedValue, int newValue);
+        public bool WeakCompareAndSetVolatile(int i, int expectedValue, int newValue);
     }
     public class AtomicLong : Number, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public long Acquire { get; }
+        public long Opaque { get; set; }
+        public long Plain { get; set; }
+        public long CompareAndExchange(long expectedValue, long newValue);
+        public long CompareAndExchangeAcquire(long expectedValue, long newValue);
+        public long CompareAndExchangeRelease(long expectedValue, long newValue);
-        public bool CompareAndSet(long expect, long update);
+        public bool CompareAndSet(long expectedValue, long newValue);
+        public void SetRelease(long newValue);
-        public bool WeakCompareAndSet(long expect, long update);
+        public bool WeakCompareAndSet(long expectedValue, long newValue);
+        public bool WeakCompareAndSetAcquire(long expectedValue, long newValue);
+        public bool WeakCompareAndSetPlain(long expectedValue, long newValue);
+        public bool WeakCompareAndSetRelease(long expectedValue, long newValue);
+        public bool WeakCompareAndSetVolatile(long expectedValue, long newValue);
     }
     public class AtomicLongArray : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public long CompareAndExchange(int i, long expectedValue, long newValue);
+        public long CompareAndExchangeAcquire(int i, long expectedValue, long newValue);
+        public long CompareAndExchangeRelease(int i, long expectedValue, long newValue);
-        public bool CompareAndSet(int i, long expect, long update);
+        public bool CompareAndSet(int i, long expectedValue, long newValue);
+        public long GetAcquire(int i);
+        public long GetOpaque(int i);
+        public long GetPlain(int i);
+        public void SetOpaque(int i, long newValue);
+        public void SetPlain(int i, long newValue);
+        public void SetRelease(int i, long newValue);
-        public bool WeakCompareAndSet(int i, long expect, long update);
+        public bool WeakCompareAndSet(int i, long expectedValue, long newValue);
+        public bool WeakCompareAndSetAcquire(int i, long expectedValue, long newValue);
+        public bool WeakCompareAndSetPlain(int i, long expectedValue, long newValue);
+        public bool WeakCompareAndSetRelease(int i, long expectedValue, long newValue);
+        public bool WeakCompareAndSetVolatile(int i, long expectedValue, long newValue);
     }
     public class AtomicReference : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public Object Acquire { get; }
+        public Object Opaque { get; set; }
+        public Object Plain { get; set; }
+        public Object CompareAndExchange(Object expectedValue, Object newValue);
+        public Object CompareAndExchangeAcquire(Object expectedValue, Object newValue);
+        public Object CompareAndExchangeRelease(Object expectedValue, Object newValue);
-        public bool CompareAndSet(Object expect, Object update);
+        public bool CompareAndSet(Object expectedValue, Object newValue);
+        public void SetRelease(Object newValue);
-        public bool WeakCompareAndSet(Object expect, Object update);
+        public bool WeakCompareAndSet(Object expectedValue, Object newValue);
+        public bool WeakCompareAndSetAcquire(Object expectedValue, Object newValue);
+        public bool WeakCompareAndSetPlain(Object expectedValue, Object newValue);
+        public bool WeakCompareAndSetRelease(Object expectedValue, Object newValue);
+        public bool WeakCompareAndSetVolatile(Object expectedValue, Object newValue);
     }
     public class AtomicReferenceArray : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public Object CompareAndExchange(int i, Object expectedValue, Object newValue);
+        public Object CompareAndExchangeAcquire(int i, Object expectedValue, Object newValue);
+        public Object CompareAndExchangeRelease(int i, Object expectedValue, Object newValue);
-        public bool CompareAndSet(int i, Object expect, Object update);
+        public bool CompareAndSet(int i, Object expectedValue, Object newValue);
+        public Object GetAcquire(int i);
+        public Object GetOpaque(int i);
+        public Object GetPlain(int i);
+        public void SetOpaque(int i, Object newValue);
+        public void SetPlain(int i, Object newValue);
+        public void SetRelease(int i, Object newValue);
-        public bool WeakCompareAndSet(int i, Object expect, Object update);
+        public bool WeakCompareAndSet(int i, Object expectedValue, Object newValue);
+        public bool WeakCompareAndSetAcquire(int i, Object expectedValue, Object newValue);
+        public bool WeakCompareAndSetPlain(int i, Object expectedValue, Object newValue);
+        public bool WeakCompareAndSetRelease(int i, Object expectedValue, Object newValue);
+        public bool WeakCompareAndSetVolatile(int i, Object expectedValue, Object newValue);
     }
 }

Java.Util.Concurrent.Locks

 namespace Java.Util.Concurrent.Locks {
     public class StampedLock : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public static bool IsLockStamp(long stamp);
+        public static bool IsOptimisticReadStamp(long stamp);
+        public static bool IsReadLockStamp(long stamp);
+        public static bool IsWriteLockStamp(long stamp);
     }
 }

Java.Util.Functions

 namespace Java.Util.Functions {
     public interface IPredicate : IDisposable, IJavaObject, IJavaPeerable {
+        static IPredicate Not(IPredicate target);
     }
     public abstract class Predicate : Object {
-        public static IPredicate? IsEqual(Object? targetRef);
+        public static IPredicate IsEqual(Object targetRef);
+        public static IPredicate Not(IPredicate target);
     }
 }

Java.Util.Jar

 namespace Java.Util.Jar {
     public class JarEntry : ZipEntry {
-        public JarEntry(JarEntry? je);
+        public JarEntry(JarEntry je);
-        public JarEntry(ZipEntry? ze);
+        public JarEntry(ZipEntry ze);
-        public JarEntry(string? name);
+        public JarEntry(string name);
-        public virtual Attributes? Attributes { get; }
+        public virtual Attributes Attributes { get; }
+        public virtual string RealName { get; }
     }
 }

Java.Util.Streams

 namespace Java.Util.Streams {
     public sealed class Collectors : Object {
+        public static ICollector Filtering(IPredicate predicate, ICollector downstream);
-        public static ICollector ToConcurrentMap(IFunction keyMapper, IFunction valueMapper, IBinaryOperator mergeFunction, ISupplier mapSupplier);
+        public static ICollector ToConcurrentMap(IFunction keyMapper, IFunction valueMapper, IBinaryOperator mergeFunction, ISupplier mapFactory);
-        public static ICollector ToMap(IFunction keyMapper, IFunction valueMapper, IBinaryOperator mergeFunction, ISupplier mapSupplier);
+        public static ICollector ToMap(IFunction keyMapper, IFunction valueMapper, IBinaryOperator mergeFunction, ISupplier mapFactory);
+        public static ICollector ToUnmodifiableList();
+        public static ICollector ToUnmodifiableMap(IFunction keyMapper, IFunction valueMapper);
+        public static ICollector ToUnmodifiableMap(IFunction keyMapper, IFunction valueMapper, IBinaryOperator mergeFunction);
+        public static ICollector ToUnmodifiableSet();
     }
 }

Org.Json

 namespace Org.Json {
     public class JSONObject : Object {
+        public virtual JSONObject Append(string name, Object? value);
     }
 }

Xamarin.Android.Net

 namespace Xamarin.Android.Net {
     public class AndroidMessageHandler : HttpMessageHandler {
-        public Func<HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool> ServerCertificateCustomValidationCallback { get; set; }
+        public Func<HttpRequestMessage, X509Certificate2?, X509Chain?, SslPolicyErrors, bool>? ServerCertificateCustomValidationCallback { get; set; }
     }
 }