// AUTO GENERATED BY JNIGEN 0.17.0. DO NOT EDIT!

// ignore_for_file: annotate_overrides
// ignore_for_file: argument_type_not_assignable
// ignore_for_file: camel_case_extensions
// ignore_for_file: camel_case_types
// ignore_for_file: constant_identifier_names
// ignore_for_file: comment_references
// ignore_for_file: doc_directive_unknown
// ignore_for_file: file_names
// ignore_for_file: inference_failure_on_untyped_parameter
// ignore_for_file: invalid_internal_annotation
// ignore_for_file: invalid_use_of_internal_member
// ignore_for_file: library_prefixes
// ignore_for_file: lines_longer_than_80_chars
// ignore_for_file: no_leading_underscores_for_library_prefixes
// ignore_for_file: no_leading_underscores_for_local_identifiers
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: only_throw_errors
// ignore_for_file: overridden_fields
// ignore_for_file: prefer_double_quotes
// ignore_for_file: unintended_html_in_doc_comment
// ignore_for_file: unnecessary_cast
// ignore_for_file: unnecessary_non_null_assertion
// ignore_for_file: unnecessary_parenthesis
// ignore_for_file: unused_element
// ignore_for_file: unused_field
// ignore_for_file: unused_import
// ignore_for_file: unused_local_variable
// ignore_for_file: unused_shown_name
// ignore_for_file: use_super_parameters

import 'dart:core' as core$_;
import 'dart:core' show Object, String;

import 'package:jni/_internal.dart' as jni$_;
import 'package:jni/jni.dart' as jni$_;

const _$jniVersionCheck = jni$_.JniVersionCheck(1, 0);

/// from: `java.lang.Runnable`
extension type Runnable._(jni$_.JObject _$this) implements jni$_.JObject {
  static final _class = jni$_.JClass.forName(r'java/lang/Runnable');

  /// The type which includes information such as the signature of this class.
  static const jni$_.JType<Runnable> type = $Runnable$Type$();

  /// Maps a specific port to the implemented interface.
  static final core$_.Map<core$_.int, $Runnable> _$impls = {};
  static jni$_.JObjectPtr _$invoke(
    core$_.int port,
    jni$_.JObjectPtr descriptor,
    jni$_.JObjectPtr args,
  ) {
    return _$invokeMethod(
      port,
      jni$_.MethodInvocation.fromAddresses(
        0,
        descriptor.address,
        args.address,
      ),
    );
  }

  static final jni$_.Pointer<
    jni$_.NativeFunction<
      jni$_.JObjectPtr Function(jni$_.Int64, jni$_.JObjectPtr, jni$_.JObjectPtr)
    >
  >
  _$invokePointer = jni$_.Pointer.fromFunction(_$invoke);

  static jni$_.Pointer<jni$_.Void> _$invokeMethod(
    core$_.int $p,
    jni$_.MethodInvocation $i,
  ) {
    try {
      final $d = $i.methodDescriptor.toDartString(releaseOriginal: true);
      final $a = $i.args;
      if ($d == r'run()V') {
        _$impls[$p]!.run();
        return jni$_.nullptr;
      }
    } catch (e) {
      return jni$_.ProtectedJniExtensions.newDartException(e);
    }
    return jni$_.nullptr;
  }

  static void implementIn(
    jni$_.JImplementer implementer,
    $Runnable $impl,
  ) {
    late final jni$_.RawReceivePort $p;
    $p = jni$_.RawReceivePort(($m) {
      if ($m == null) {
        _$impls.remove($p.sendPort.nativePort);
        $p.close();
        return;
      }
      final $i = jni$_.MethodInvocation.fromMessage($m);
      final $r = _$invokeMethod($p.sendPort.nativePort, $i);
      jni$_.ProtectedJniExtensions.returnResult($i.result, $r);
    });
    implementer.add(
      r'java.lang.Runnable',
      $p,
      _$invokePointer,
      [
        if ($impl.run$async) r'run()V',
      ],
    );
    final $a = $p.sendPort.nativePort;
    _$impls[$a] = $impl;
  }

  factory Runnable.implement(
    $Runnable $impl,
  ) {
    final $i = jni$_.JImplementer();
    implementIn($i, $impl);
    return $i.implement<Runnable>();
  }
}

extension Runnable$$Methods on Runnable {
  static final _id_run = Runnable._class.instanceMethodId(
    r'run',
    r'()V',
  );

  static final _run =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JThrowablePtr Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
              )
            >
          >('globalEnv_CallVoidMethod')
          .asFunction<
            jni$_.JThrowablePtr Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
            )
          >();

  /// from: `public abstract void run()`
  void run() {
    final _$$selfRef = reference;
    _run(_$$selfRef.pointer, _id_run.pointer).check();
  }
}

abstract base mixin class $Runnable {
  factory $Runnable({
    required void Function() run,
    core$_.bool run$async,
  }) = _$Runnable;

  void run();
  core$_.bool get run$async => false;
}

final class _$Runnable with $Runnable {
  _$Runnable({
    required void Function() run,
    this.run$async = false,
  }) : _run = run;

  final void Function() _run;
  final core$_.bool run$async;

  void run() {
    return _run();
  }
}

final class $Runnable$Type$ extends jni$_.JType<Runnable> {
  @jni$_.internal
  const $Runnable$Type$();

  @jni$_.internal
  @core$_.override
  String get signature => r'Ljava/lang/Runnable;';
}

/// from: `com.example.piliplus.AndroidHelper`
extension type AndroidHelper._(jni$_.JObject _$this) implements jni$_.JObject {
  static final _class = jni$_.JClass.forName(
    r'com/example/piliplus/AndroidHelper',
  );

  /// The type which includes information such as the signature of this class.
  static const jni$_.JType<AndroidHelper> type = $AndroidHelper$Type$();
  static final _id_isFoldable = _class.staticFieldId(
    r'isFoldable',
    r'Z',
  );

  /// from: `static public final boolean isFoldable`
  static core$_.bool get isFoldable =>
      _id_isFoldable.getNullable(_class, jni$_.jboolean.type) as core$_.bool;

  static final _id_isPipAvailable = _class.staticFieldId(
    r'isPipAvailable',
    r'Z',
  );

  /// from: `static public final boolean isPipAvailable`
  static core$_.bool get isPipAvailable =>
      _id_isPipAvailable.getNullable(_class, jni$_.jboolean.type)
          as core$_.bool;

  static final _id_isPipMode = _class.staticFieldId(
    r'isPipMode',
    r'Z',
  );

  /// from: `static public volatile boolean isPipMode`
  static core$_.bool get isPipMode =>
      _id_isPipMode.getNullable(_class, jni$_.jboolean.type) as core$_.bool;

  /// from: `static public volatile boolean isPipMode`
  static set isPipMode(core$_.bool value) =>
      _id_isPipMode.set(_class, jni$_.jboolean.type, value);

  static final _id_sdkInt = _class.staticMethodId(
    r'sdkInt',
    r'()I',
  );

  static final _sdkInt =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JniResult Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
              )
            >
          >('globalEnv_CallStaticIntMethod')
          .asFunction<
            jni$_.JniResult Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
            )
          >();

  /// from: `static public int sdkInt()`
  static core$_.int sdkInt() {
    final _$$classRef = _class.reference;
    return _sdkInt(_$$classRef.pointer, _id_sdkInt.pointer).integer;
  }

  static final _id_back = _class.staticMethodId(
    r'back',
    r'()V',
  );

  static final _back =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JThrowablePtr Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
              )
            >
          >('globalEnv_CallStaticVoidMethod')
          .asFunction<
            jni$_.JThrowablePtr Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
            )
          >();

  /// from: `static public void back()`
  static void back() {
    final _$$classRef = _class.reference;
    _back(_$$classRef.pointer, _id_back.pointer).check();
  }

  static final _id_biliSendCommAntifraud = _class.staticMethodId(
    r'biliSendCommAntifraud',
    r'(IJIJJJJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;)V',
  );

  static final _biliSendCommAntifraud =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JThrowablePtr Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
                jni$_.VarArgs<
                  (
                    jni$_.Int32,
                    jni$_.Int64,
                    jni$_.Int32,
                    jni$_.Int64,
                    jni$_.Int64,
                    jni$_.Int64,
                    jni$_.Int64,
                    jni$_.Pointer<jni$_.Void>,
                    jni$_.Pointer<jni$_.Void>,
                    jni$_.Pointer<jni$_.Void>,
                    jni$_.Int64,
                    jni$_.Pointer<jni$_.Void>,
                  )
                >,
              )
            >
          >('globalEnv_CallStaticVoidMethod')
          .asFunction<
            jni$_.JThrowablePtr Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
              core$_.int,
              core$_.int,
              core$_.int,
              core$_.int,
              core$_.int,
              core$_.int,
              core$_.int,
              jni$_.Pointer<jni$_.Void>,
              jni$_.Pointer<jni$_.Void>,
              jni$_.Pointer<jni$_.Void>,
              core$_.int,
              jni$_.Pointer<jni$_.Void>,
            )
          >();

  /// from: `static public void biliSendCommAntifraud(int action, long oid, int type, long rpId, long root, long parent, long ctime, java.lang.String commentText, java.lang.String pictures, java.lang.String sourceId, long uid, java.lang.String cookie)`
  static void biliSendCommAntifraud(
    core$_.int action,
    core$_.int oid,
    core$_.int type,
    core$_.int rpId,
    core$_.int root,
    core$_.int parent,
    core$_.int ctime,
    jni$_.JString commentText,
    jni$_.JString? pictures,
    jni$_.JString sourceId,
    core$_.int uid,
    jni$_.JString cookie,
  ) {
    final _$$classRef = _class.reference;
    final _$commentText = commentText.reference;
    final _$pictures = pictures?.reference ?? jni$_.jNullReference;
    final _$sourceId = sourceId.reference;
    final _$cookie = cookie.reference;
    _biliSendCommAntifraud(
      _$$classRef.pointer,
      _id_biliSendCommAntifraud.pointer,
      action,
      oid,
      type,
      rpId,
      root,
      parent,
      ctime,
      _$commentText.pointer,
      _$pictures.pointer,
      _$sourceId.pointer,
      uid,
      _$cookie.pointer,
    ).check();
  }

  static final _id_openLinkVerifySettings = _class.staticMethodId(
    r'openLinkVerifySettings',
    r'()V',
  );

  static final _openLinkVerifySettings =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JThrowablePtr Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
              )
            >
          >('globalEnv_CallStaticVoidMethod')
          .asFunction<
            jni$_.JThrowablePtr Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
            )
          >();

  /// from: `static public void openLinkVerifySettings()`
  static void openLinkVerifySettings() {
    final _$$classRef = _class.reference;
    _openLinkVerifySettings(
      _$$classRef.pointer,
      _id_openLinkVerifySettings.pointer,
    ).check();
  }

  static final _id_openMusic = _class.staticMethodId(
    r'openMusic',
    r'(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z',
  );

  static final _openMusic =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JniResult Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
                jni$_.VarArgs<
                  (
                    jni$_.Pointer<jni$_.Void>,
                    jni$_.Pointer<jni$_.Void>,
                    jni$_.Pointer<jni$_.Void>,
                  )
                >,
              )
            >
          >('globalEnv_CallStaticBooleanMethod')
          .asFunction<
            jni$_.JniResult Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
              jni$_.Pointer<jni$_.Void>,
              jni$_.Pointer<jni$_.Void>,
              jni$_.Pointer<jni$_.Void>,
            )
          >();

  /// from: `static public boolean openMusic(java.lang.String title, java.lang.String artist, java.lang.String album)`
  static core$_.bool openMusic(
    jni$_.JString title,
    jni$_.JString? artist,
    jni$_.JString? album,
  ) {
    final _$$classRef = _class.reference;
    final _$title = title.reference;
    final _$artist = artist?.reference ?? jni$_.jNullReference;
    final _$album = album?.reference ?? jni$_.jNullReference;
    return _openMusic(
      _$$classRef.pointer,
      _id_openMusic.pointer,
      _$title.pointer,
      _$artist.pointer,
      _$album.pointer,
    ).boolean;
  }

  static final _id_enterPip = _class.staticMethodId(
    r'enterPip',
    r'(JIIZZZ)V',
  );

  static final _enterPip =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JThrowablePtr Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
                jni$_.VarArgs<
                  (
                    jni$_.Int64,
                    jni$_.Int32,
                    jni$_.Int32,
                    jni$_.Int32,
                    jni$_.Int32,
                    jni$_.Int32,
                  )
                >,
              )
            >
          >('globalEnv_CallStaticVoidMethod')
          .asFunction<
            jni$_.JThrowablePtr Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
              core$_.int,
              core$_.int,
              core$_.int,
              core$_.int,
              core$_.int,
              core$_.int,
            )
          >();

  /// from: `static public void enterPip(long engineId, int width, int height, boolean autoEnter, boolean isLive, boolean isPlaying)`
  static void enterPip(
    core$_.int engineId,
    core$_.int width,
    core$_.int height,
    core$_.bool autoEnter,
    core$_.bool isLive,
    core$_.bool isPlaying,
  ) {
    final _$$classRef = _class.reference;
    _enterPip(
      _$$classRef.pointer,
      _id_enterPip.pointer,
      engineId,
      width,
      height,
      autoEnter ? 1 : 0,
      isLive ? 1 : 0,
      isPlaying ? 1 : 0,
    ).check();
  }

  static final _id_updatePipActions = _class.staticMethodId(
    r'updatePipActions',
    r'(JZZ)V',
  );

  static final _updatePipActions =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JThrowablePtr Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
                jni$_.VarArgs<(jni$_.Int64, jni$_.Int32, jni$_.Int32)>,
              )
            >
          >('globalEnv_CallStaticVoidMethod')
          .asFunction<
            jni$_.JThrowablePtr Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
              core$_.int,
              core$_.int,
              core$_.int,
            )
          >();

  /// from: `static public void updatePipActions(long engineId, boolean isLive, boolean isPlaying)`
  static void updatePipActions(
    core$_.int engineId,
    core$_.bool isLive,
    core$_.bool isPlaying,
  ) {
    final _$$classRef = _class.reference;
    _updatePipActions(
      _$$classRef.pointer,
      _id_updatePipActions.pointer,
      engineId,
      isLive ? 1 : 0,
      isPlaying ? 1 : 0,
    ).check();
  }

  static final _id_disableAutoEnterPip = _class.staticMethodId(
    r'disableAutoEnterPip',
    r'(J)V',
  );

  static final _disableAutoEnterPip =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JThrowablePtr Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
                jni$_.VarArgs<(jni$_.Int64,)>,
              )
            >
          >('globalEnv_CallStaticVoidMethod')
          .asFunction<
            jni$_.JThrowablePtr Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
              core$_.int,
            )
          >();

  /// from: `static public void disableAutoEnterPip(long engineId)`
  static void disableAutoEnterPip(
    core$_.int engineId,
  ) {
    final _$$classRef = _class.reference;
    _disableAutoEnterPip(
      _$$classRef.pointer,
      _id_disableAutoEnterPip.pointer,
      engineId,
    ).check();
  }

  static final _id_maxScreenSize = _class.staticMethodId(
    r'maxScreenSize',
    r'()[I',
  );

  static final _maxScreenSize =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JniResult Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
              )
            >
          >('globalEnv_CallStaticObjectMethod')
          .asFunction<
            jni$_.JniResult Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
            )
          >();

  /// from: `static public int[] maxScreenSize()`
  /// The returned object must be released after use, by calling the [release] method.
  static jni$_.JIntArray? maxScreenSize() {
    final _$$classRef = _class.reference;
    return _maxScreenSize(
      _$$classRef.pointer,
      _id_maxScreenSize.pointer,
    ).object<jni$_.JIntArray?>();
  }

  static final _id_createShortcut = _class.staticMethodId(
    r'createShortcut',
    r'(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V',
  );

  static final _createShortcut =
      jni$_.ProtectedJniExtensions.lookup<
            jni$_.NativeFunction<
              jni$_.JThrowablePtr Function(
                jni$_.Pointer<jni$_.Void>,
                jni$_.JMethodIDPtr,
                jni$_.VarArgs<
                  (
                    jni$_.Pointer<jni$_.Void>,
                    jni$_.Pointer<jni$_.Void>,
                    jni$_.Pointer<jni$_.Void>,
                    jni$_.Pointer<jni$_.Void>,
                  )
                >,
              )
            >
          >('globalEnv_CallStaticVoidMethod')
          .asFunction<
            jni$_.JThrowablePtr Function(
              jni$_.Pointer<jni$_.Void>,
              jni$_.JMethodIDPtr,
              jni$_.Pointer<jni$_.Void>,
              jni$_.Pointer<jni$_.Void>,
              jni$_.Pointer<jni$_.Void>,
              jni$_.Pointer<jni$_.Void>,
            )
          >();

  /// from: `static public void createShortcut(java.lang.String id, java.lang.String uri, java.lang.String label, java.lang.String icon)`
  static void createShortcut(
    jni$_.JString id,
    jni$_.JString uri,
    jni$_.JString label,
    jni$_.JString icon,
  ) {
    final _$$classRef = _class.reference;
    final _$id = id.reference;
    final _$uri = uri.reference;
    final _$label = label.reference;
    final _$icon = icon.reference;
    _createShortcut(
      _$$classRef.pointer,
      _id_createShortcut.pointer,
      _$id.pointer,
      _$uri.pointer,
      _$label.pointer,
      _$icon.pointer,
    ).check();
  }
}

final class $AndroidHelper$Type$ extends jni$_.JType<AndroidHelper> {
  @jni$_.internal
  const $AndroidHelper$Type$();

  @jni$_.internal
  @core$_.override
  String get signature => r'Lcom/example/piliplus/AndroidHelper;';
}

/// from: `com.example.piliplus.AndroidHelper$ToDart`
extension type AndroidHelper$ToDart._(jni$_.JObject _$this)
    implements jni$_.JObject {
  static final _class = jni$_.JClass.forName(
    r'com/example/piliplus/AndroidHelper$ToDart',
  );

  /// The type which includes information such as the signature of this class.
  static const jni$_.JType<AndroidHelper$ToDart> type =
      $AndroidHelper$ToDart$Type$();
  static final _id_onUserLeaveHint = _class.staticFieldId(
    r'onUserLeaveHint',
    r'Ljava/lang/Runnable;',
  );

  /// from: `static public volatile java.lang.Runnable onUserLeaveHint`
  /// The returned object must be released after use, by calling the [release] method.
  static Runnable? get onUserLeaveHint =>
      _id_onUserLeaveHint.getNullable(_class, Runnable.type) as Runnable?;

  /// from: `static public volatile java.lang.Runnable onUserLeaveHint`
  /// The returned object must be released after use, by calling the [release] method.
  static set onUserLeaveHint(Runnable? value) =>
      _id_onUserLeaveHint.set(_class, Runnable.type, value);

  static final _id_onConfigurationChanged = _class.staticFieldId(
    r'onConfigurationChanged',
    r'Ljava/lang/Runnable;',
  );

  /// from: `static public java.lang.Runnable onConfigurationChanged`
  /// The returned object must be released after use, by calling the [release] method.
  static Runnable? get onConfigurationChanged =>
      _id_onConfigurationChanged.getNullable(_class, Runnable.type)
          as Runnable?;

  /// from: `static public java.lang.Runnable onConfigurationChanged`
  /// The returned object must be released after use, by calling the [release] method.
  static set onConfigurationChanged(Runnable? value) =>
      _id_onConfigurationChanged.set(_class, Runnable.type, value);
}

final class $AndroidHelper$ToDart$Type$
    extends jni$_.JType<AndroidHelper$ToDart> {
  @jni$_.internal
  const $AndroidHelper$ToDart$Type$();

  @jni$_.internal
  @core$_.override
  String get signature => r'Lcom/example/piliplus/AndroidHelper$ToDart;';
}
