// GENERATED by jnigen from the JNI spec. Do not edit. // // Every binding returns `ok` -- false means the class, method or field // failed to resolve, or the call raised a Java exception (already printed // to logcat and cleared). Class and method IDs resolve once and are cached. package main import "shared:android" import "jni" // // Object types // // android/content/Context Context :: distinct android.jobject // android/widget/Toast Toast :: distinct android.jobject // java/lang/StringBuilder StringBuilder :: distinct android.jobject // android/os/Looper Looper :: distinct android.jobject // android/app/Activity Activity :: distinct android.jobject // android/view/Window Window :: distinct android.jobject // android/view/View View :: distinct android.jobject // android/view/WindowInsets WindowInsets :: distinct android.jobject // android/graphics/Insets Insets :: distinct android.jobject // java/lang/System.currentTimeMillis()J system_current_time_millis :: proc() -> (result: i64, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "java/lang/System") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.static_method_id(env, cls, "currentTimeMillis", "()J") if mid == nil { return } } _ret := env^^.CallStaticLongMethodA(env, cls, mid, nil) if jni.failed(env) { return } result = i64(_ret) ok = true return } // android/widget/Toast.makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; toast_make_text :: proc(ctx: Context, text: string, duration: i32) -> (result: Toast, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/widget/Toast") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.static_method_id(env, cls, "makeText", "(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;") if mid == nil { return } } args := [3]android.jvalue{} args[0].l = android.jobject(ctx) _a1 := jni.to_jstring(env, text) defer jni.free_local(env, android.jobject(_a1)) args[1].l = android.jobject(_a1) args[2].i = android.jint(duration) _ret := env^^.CallStaticObjectMethodA(env, cls, mid, raw_data(args[:])) if jni.failed(env) { return } result = Toast(_ret) ok = true return } // android/os/Looper.prepare()V looper_prepare :: proc() -> (ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/os/Looper") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.static_method_id(env, cls, "prepare", "()V") if mid == nil { return } } env^^.CallStaticVoidMethodA(env, cls, mid, nil) if jni.failed(env) { return } ok = true return } // android/os/Looper.myLooper()Landroid/os/Looper; looper_my_looper :: proc() -> (result: Looper, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/os/Looper") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.static_method_id(env, cls, "myLooper", "()Landroid/os/Looper;") if mid == nil { return } } _ret := env^^.CallStaticObjectMethodA(env, cls, mid, nil) if jni.failed(env) { return } result = Looper(_ret) ok = true return } // android/widget/Toast.show()V toast_show :: proc(self: Toast) -> (ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/widget/Toast") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "show", "()V") if mid == nil { return } } env^^.CallVoidMethodA(env, android.jobject(self), mid, nil) if jni.failed(env) { return } ok = true return } // java/lang/StringBuilder.append(Ljava/lang/String;)Ljava/lang/StringBuilder; sb_append :: proc(self: StringBuilder, s: string) -> (result: StringBuilder, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "java/lang/StringBuilder") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;") if mid == nil { return } } args := [1]android.jvalue{} _a0 := jni.to_jstring(env, s) defer jni.free_local(env, android.jobject(_a0)) args[0].l = android.jobject(_a0) _ret := env^^.CallObjectMethodA(env, android.jobject(self), mid, raw_data(args[:])) if jni.failed(env) { return } result = StringBuilder(_ret) ok = true return } // java/lang/StringBuilder.toString()Ljava/lang/String; sb_to_string :: proc(self: StringBuilder, allocator := context.allocator) -> (result: string, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "java/lang/StringBuilder") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "toString", "()Ljava/lang/String;") if mid == nil { return } } _ret := env^^.CallObjectMethodA(env, android.jobject(self), mid, nil) if jni.failed(env) { return } defer jni.free_local(env, _ret) result = jni.from_jstring(env, android.jstring(_ret), allocator) ok = true return } // new java/lang/StringBuilder()V sb_new :: proc() -> (result: StringBuilder, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "java/lang/StringBuilder") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "", "()V") if mid == nil { return } } _ret := env^^.NewObjectA(env, cls, mid, nil) if jni.failed(env) { return } result = StringBuilder(_ret) ok = true return } // android/os/Build$VERSION.SDK_INT : I (get) build_sdk_int :: proc() -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/os/Build$VERSION") if cls == nil { return } } @(static) fid: android.jfieldID if fid == nil { fid = jni.static_field_id(env, cls, "SDK_INT", "I") if fid == nil { return } } _ret := env^^.GetStaticIntField(env, cls, fid) if jni.failed(env) { return } result = i32(_ret) ok = true return } // android/os/Build.MODEL : Ljava/lang/String; (get) build_model :: proc(allocator := context.allocator) -> (result: string, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/os/Build") if cls == nil { return } } @(static) fid: android.jfieldID if fid == nil { fid = jni.static_field_id(env, cls, "MODEL", "Ljava/lang/String;") if fid == nil { return } } _ret := env^^.GetStaticObjectField(env, cls, fid) if jni.failed(env) { return } defer jni.free_local(env, _ret) result = jni.from_jstring(env, android.jstring(_ret), allocator) ok = true return } // java/util/Arrays.sort([I)V arrays_sort :: proc(vals: []i32) -> (ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "java/util/Arrays") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.static_method_id(env, cls, "sort", "([I)V") if mid == nil { return } } args := [1]android.jvalue{} _a0 := jni.to_i32_array(env, vals) defer jni.free_local(env, android.jobject(_a0)) args[0].l = android.jobject(_a0) env^^.CallStaticVoidMethodA(env, cls, mid, raw_data(args[:])) if jni.failed(env) { return } ok = true return } // android/os/Build.SUPPORTED_ABIS : [Ljava/lang/String; (get) build_supported_abis :: proc(allocator := context.allocator) -> (result: []string, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/os/Build") if cls == nil { return } } @(static) fid: android.jfieldID if fid == nil { fid = jni.static_field_id(env, cls, "SUPPORTED_ABIS", "[Ljava/lang/String;") if fid == nil { return } } _ret := env^^.GetStaticObjectField(env, cls, fid) if jni.failed(env) { return } defer jni.free_local(env, _ret) result = jni.from_string_array(env, android.jobjectArray(_ret), allocator) ok = true return } // android/app/Activity.getWindow()Landroid/view/Window; activity_get_window :: proc(self: Activity) -> (result: Window, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/app/Activity") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "getWindow", "()Landroid/view/Window;") if mid == nil { return } } _ret := env^^.CallObjectMethodA(env, android.jobject(self), mid, nil) if jni.failed(env) { return } result = Window(_ret) ok = true return } // android/view/Window.getDecorView()Landroid/view/View; window_get_decor_view :: proc(self: Window) -> (result: View, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/view/Window") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "getDecorView", "()Landroid/view/View;") if mid == nil { return } } _ret := env^^.CallObjectMethodA(env, android.jobject(self), mid, nil) if jni.failed(env) { return } result = View(_ret) ok = true return } // android/view/View.getRootWindowInsets()Landroid/view/WindowInsets; view_get_root_window_insets :: proc(self: View) -> (result: WindowInsets, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/view/View") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "getRootWindowInsets", "()Landroid/view/WindowInsets;") if mid == nil { return } } _ret := env^^.CallObjectMethodA(env, android.jobject(self), mid, nil) if jni.failed(env) { return } result = WindowInsets(_ret) ok = true return } // android/view/WindowInsets$Type.systemBars()I insets_type_system_bars :: proc() -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/view/WindowInsets$Type") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.static_method_id(env, cls, "systemBars", "()I") if mid == nil { return } } _ret := env^^.CallStaticIntMethodA(env, cls, mid, nil) if jni.failed(env) { return } result = i32(_ret) ok = true return } // android/view/WindowInsets$Type.displayCutout()I insets_type_display_cutout :: proc() -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/view/WindowInsets$Type") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.static_method_id(env, cls, "displayCutout", "()I") if mid == nil { return } } _ret := env^^.CallStaticIntMethodA(env, cls, mid, nil) if jni.failed(env) { return } result = i32(_ret) ok = true return } // android/view/WindowInsets.getInsetsIgnoringVisibility(I)Landroid/graphics/Insets; window_insets_get_ignoring_visibility :: proc(self: WindowInsets, type_mask: i32) -> (result: Insets, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/view/WindowInsets") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "getInsetsIgnoringVisibility", "(I)Landroid/graphics/Insets;") if mid == nil { return } } args := [1]android.jvalue{} args[0].i = android.jint(type_mask) _ret := env^^.CallObjectMethodA(env, android.jobject(self), mid, raw_data(args[:])) if jni.failed(env) { return } result = Insets(_ret) ok = true return } // android/view/WindowInsets.getInsets(I)Landroid/graphics/Insets; window_insets_get :: proc(self: WindowInsets, type_mask: i32) -> (result: Insets, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/view/WindowInsets") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "getInsets", "(I)Landroid/graphics/Insets;") if mid == nil { return } } args := [1]android.jvalue{} args[0].i = android.jint(type_mask) _ret := env^^.CallObjectMethodA(env, android.jobject(self), mid, raw_data(args[:])) if jni.failed(env) { return } result = Insets(_ret) ok = true return } // android/graphics/Insets.left : I (get) insets_left :: proc(self: Insets) -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/graphics/Insets") if cls == nil { return } } @(static) fid: android.jfieldID if fid == nil { fid = jni.field_id(env, cls, "left", "I") if fid == nil { return } } _ret := env^^.GetIntField(env, android.jobject(self), fid) if jni.failed(env) { return } result = i32(_ret) ok = true return } // android/graphics/Insets.top : I (get) insets_top :: proc(self: Insets) -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/graphics/Insets") if cls == nil { return } } @(static) fid: android.jfieldID if fid == nil { fid = jni.field_id(env, cls, "top", "I") if fid == nil { return } } _ret := env^^.GetIntField(env, android.jobject(self), fid) if jni.failed(env) { return } result = i32(_ret) ok = true return } // android/graphics/Insets.right : I (get) insets_right :: proc(self: Insets) -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/graphics/Insets") if cls == nil { return } } @(static) fid: android.jfieldID if fid == nil { fid = jni.field_id(env, cls, "right", "I") if fid == nil { return } } _ret := env^^.GetIntField(env, android.jobject(self), fid) if jni.failed(env) { return } result = i32(_ret) ok = true return } // android/graphics/Insets.bottom : I (get) insets_bottom :: proc(self: Insets) -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/graphics/Insets") if cls == nil { return } } @(static) fid: android.jfieldID if fid == nil { fid = jni.field_id(env, cls, "bottom", "I") if fid == nil { return } } _ret := env^^.GetIntField(env, android.jobject(self), fid) if jni.failed(env) { return } result = i32(_ret) ok = true return } // android/view/WindowInsets.getSystemWindowInsetLeft()I window_insets_sys_left :: proc(self: WindowInsets) -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/view/WindowInsets") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "getSystemWindowInsetLeft", "()I") if mid == nil { return } } _ret := env^^.CallIntMethodA(env, android.jobject(self), mid, nil) if jni.failed(env) { return } result = i32(_ret) ok = true return } // android/view/WindowInsets.getSystemWindowInsetTop()I window_insets_sys_top :: proc(self: WindowInsets) -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/view/WindowInsets") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "getSystemWindowInsetTop", "()I") if mid == nil { return } } _ret := env^^.CallIntMethodA(env, android.jobject(self), mid, nil) if jni.failed(env) { return } result = i32(_ret) ok = true return } // android/view/WindowInsets.getSystemWindowInsetRight()I window_insets_sys_right :: proc(self: WindowInsets) -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/view/WindowInsets") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "getSystemWindowInsetRight", "()I") if mid == nil { return } } _ret := env^^.CallIntMethodA(env, android.jobject(self), mid, nil) if jni.failed(env) { return } result = i32(_ret) ok = true return } // android/view/WindowInsets.getSystemWindowInsetBottom()I window_insets_sys_bottom :: proc(self: WindowInsets) -> (result: i32, ok: bool) { env := jni.env() if env == nil { return } @(static) cls: android.jclass if cls == nil { cls = jni.class_ref(env, "android/view/WindowInsets") if cls == nil { return } } @(static) mid: android.jmethodID if mid == nil { mid = jni.method_id(env, cls, "getSystemWindowInsetBottom", "()I") if mid == nil { return } } _ret := env^^.CallIntMethodA(env, android.jobject(self), mid, nil) if jni.failed(env) { return } result = i32(_ret) ok = true return }