From 123de5f819157ea44cc4f475e6b7c3d60c643dbb Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Wed, 12 Feb 2025 21:31:03 +0100 Subject: [PATCH] Dialog: some fixes for CTS Most Dialog test still fail, because we don't handle KeyEvents --- src/api-impl-jni/app/android_app_Dialog.c | 6 ++++++ src/api-impl-jni/generated_headers/android_app_Dialog.h | 8 ++++++++ src/api-impl/android/app/DatePickerDialog.java | 8 +++++++- src/api-impl/android/app/Dialog.java | 3 ++- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/api-impl-jni/app/android_app_Dialog.c b/src/api-impl-jni/app/android_app_Dialog.c index 5aace0f7..1d9c37bb 100644 --- a/src/api-impl-jni/app/android_app_Dialog.c +++ b/src/api-impl-jni/app/android_app_Dialog.c @@ -50,3 +50,9 @@ JNIEXPORT void JNICALL Java_android_app_Dialog_nativeClose(JNIEnv *env, jobject GtkWindow *dialog = GTK_WINDOW(_PTR(ptr)); gtk_window_close(dialog); } + +JNIEXPORT jboolean JNICALL Java_android_app_Dialog_nativeIsShowing(JNIEnv *env, jobject this, jlong ptr) +{ + GtkWindow *dialog = GTK_WINDOW(_PTR(ptr)); + return gtk_widget_is_visible(GTK_WIDGET(dialog)); +} diff --git a/src/api-impl-jni/generated_headers/android_app_Dialog.h b/src/api-impl-jni/generated_headers/android_app_Dialog.h index cdef5a00..31fdd361 100644 --- a/src/api-impl-jni/generated_headers/android_app_Dialog.h +++ b/src/api-impl-jni/generated_headers/android_app_Dialog.h @@ -47,6 +47,14 @@ JNIEXPORT void JNICALL Java_android_app_Dialog_nativeShow JNIEXPORT void JNICALL Java_android_app_Dialog_nativeClose (JNIEnv *, jobject, jlong); +/* + * Class: android_app_Dialog + * Method: nativeIsShowing + * Signature: (J)Z + */ +JNIEXPORT jboolean JNICALL Java_android_app_Dialog_nativeIsShowing + (JNIEnv *, jobject, jlong); + #ifdef __cplusplus } #endif diff --git a/src/api-impl/android/app/DatePickerDialog.java b/src/api-impl/android/app/DatePickerDialog.java index e28bf534..551fbb0e 100644 --- a/src/api-impl/android/app/DatePickerDialog.java +++ b/src/api-impl/android/app/DatePickerDialog.java @@ -1,6 +1,12 @@ package android.app; -public class DatePickerDialog { +import android.content.Context; + +public class DatePickerDialog extends Dialog { + + public DatePickerDialog(Context context) { + super(context); + } public interface OnDateSetListener {} } diff --git a/src/api-impl/android/app/Dialog.java b/src/api-impl/android/app/Dialog.java index 00cd148f..c1ff8bfa 100644 --- a/src/api-impl/android/app/Dialog.java +++ b/src/api-impl/android/app/Dialog.java @@ -20,6 +20,7 @@ public class Dialog implements Window.Callback, DialogInterface { private native void nativeSetContentView(long ptr, long widget); private native void nativeShow(long ptr); private native void nativeClose(long ptr); + private native boolean nativeIsShowing(long ptr); private Context context; private Window window; @@ -90,7 +91,7 @@ public class Dialog implements Window.Callback, DialogInterface { } public boolean isShowing() { - return false; + return nativeIsShowing(nativePtr); } public void dismiss() {