48 Qt::WindowModality windowModality,
51 Q_UNUSED(windowFlags);
52 Q_UNUSED(windowModality);
54 QSharedPointer<QMessageDialogOptions> opt = options();
58 if (!opt->checkBoxLabel().isNull())
61 m_javaMessageDialog.callMethod<
void>(
"setStandardIcon",
"(I)V", opt->standardIcon());
63 QString str = htmlText(opt->windowTitle());
65 m_javaMessageDialog.callMethod<
void>(
"setTile",
"(Ljava/lang/String;)V",
66 QJniObject::fromString(str).object());
69 str = htmlText(opt->text());
71 m_javaMessageDialog.callMethod<
void>(
"setText",
"(Ljava/lang/String;)V",
72 QJniObject::fromString(str).object());
75 str = htmlText(opt->informativeText());
77 m_javaMessageDialog.callMethod<
void>(
"setInformativeText",
"(Ljava/lang/String;)V",
78 QJniObject::fromString(str).object());
81 str = htmlText(opt->detailedText());
83 m_javaMessageDialog.callMethod<
void>(
"setDetailedText",
"(Ljava/lang/String;)V",
84 QJniObject::fromString(str).object());
87 const int *currentLayout = buttonLayout(Qt::Horizontal, AndroidLayout);
88 while (*currentLayout != QPlatformDialogHelper::EOL) {
89 const int role = (*currentLayout & ~QPlatformDialogHelper::Reverse);
90 addButtons(opt,
static_cast<ButtonRole>(role));
94 const bool hasEscapeButton = opt->escapeButton() != QPlatformDialogHelper::NoButton;
95 m_javaMessageDialog.callMethod<
void>(
"show",
"(JZ)V",
96 jlong(
static_cast<QObject*>(
this)),
97 jboolean(hasEscapeButton));
132 if (m_loop.isRunning())
139 const StandardButton standardButton =
static_cast<StandardButton>(buttonID);
140 ButtonRole role = QPlatformDialogHelper::buttonRole(standardButton);
141 if (buttonID > QPlatformDialogHelper::LastButton) {
143 const QMessageDialogOptions::CustomButton *custom = options()->customButton(buttonID);
148 emit clicked(standardButton, role);
171 const char QtMessageHandlerHelperClassName[] =
"org/qtproject/qt/android/QtMessageDialogHelper";
172 jclass clazz = env.findClass(QtMessageHandlerHelperClassName);
175 , QtMessageHandlerHelperClassName);
178 g_messageDialogHelperClass =
static_cast<jclass>(env->NewGlobalRef(clazz));
180 if (!env.registerNativeMethods(
"org/qtproject/qt/android/QtNativeDialogHelper",
182 __android_log_print(ANDROID_LOG_FATAL,
"Qt",
"RegisterNatives failed");