diff options
Diffstat (limited to 'src/plugins/platforms/android')
10 files changed, 26 insertions, 51 deletions
diff --git a/src/plugins/platforms/android/androidjniaccessibility.cpp b/src/plugins/platforms/android/androidjniaccessibility.cpp index 69f8bdbad7..385ad3b672 100644 --- a/src/plugins/platforms/android/androidjniaccessibility.cpp +++ b/src/plugins/platforms/android/androidjniaccessibility.cpp @@ -68,10 +68,6 @@ namespace QtAndroidAccessibility void initialize() { - // API level > 16 is required. - if (QtAndroidPrivate::androidSdkVersion() < 16) - return; - QJNIObjectPrivate::callStaticMethod<void>(QtAndroid::applicationClass(), "initializeAccessibility"); } @@ -299,9 +295,6 @@ if (!clazz) { \ bool registerNatives(JNIEnv *env) { - if (QtAndroidPrivate::androidSdkVersion() < 16) - return true; // We need API level 16 or higher - jclass clazz; FIND_AND_CHECK_CLASS("org/qtproject/qt5/android/accessibility/QtNativeAccessibility"); jclass appClass = static_cast<jclass>(env->NewGlobalRef(clazz)); diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp index dd9154f8d2..7045533fca 100644 --- a/src/plugins/platforms/android/androidjnimain.cpp +++ b/src/plugins/platforms/android/androidjnimain.cpp @@ -494,7 +494,7 @@ static jboolean startQtApplication(JNIEnv *env, jobject /*object*/, jstring para // Obtain a handle to the main library (the library that contains the main() function). // This library should already be loaded, and calling dlopen() will just return a reference to it. m_mainLibraryHnd = dlopen(m_applicationParams.first().data(), 0); - if (m_mainLibraryHnd == nullptr) { + if (Q_UNLIKELY(!m_mainLibraryHnd)) { qCritical() << "dlopen failed:" << dlerror(); return false; } @@ -504,7 +504,7 @@ static jboolean startQtApplication(JNIEnv *env, jobject /*object*/, jstring para m_main = (Main)dlsym(RTLD_DEFAULT, "main"); } - if (!m_main) { + if (Q_UNLIKELY(!m_main)) { qCritical() << "dlsym failed:" << dlerror() << endl << "Could not find main method"; return false; diff --git a/src/plugins/platforms/android/androidjnimenu.cpp b/src/plugins/platforms/android/androidjnimenu.cpp index 8018cef1dc..3f44a3c4b9 100644 --- a/src/plugins/platforms/android/androidjnimenu.cpp +++ b/src/plugins/platforms/android/androidjnimenu.cpp @@ -87,14 +87,7 @@ namespace QtAndroidMenu void showContextMenu(QAndroidPlatformMenu *menu, const QRect &anchorRect, JNIEnv *env) { QMutexLocker lock(&visibleMenuMutex); - if (QtAndroidPrivate::androidSdkVersion() > 10 && - QtAndroidPrivate::androidSdkVersion() < 14 && - anchorRect.isValid()) { - pendingContextMenus.clear(); - } else if (visibleMenu) { - pendingContextMenus.append(visibleMenu); - } - + pendingContextMenus.append(visibleMenu); visibleMenu = menu; menu->aboutToShow(); env->CallStaticVoidMethod(applicationClass(), openContextMenuMethodID, anchorRect.x(), anchorRect.y(), anchorRect.width(), anchorRect.height()); diff --git a/src/plugins/platforms/android/qandroideventdispatcher.cpp b/src/plugins/platforms/android/qandroideventdispatcher.cpp index aecea0d4e1..3f1cfe18b9 100644 --- a/src/plugins/platforms/android/qandroideventdispatcher.cpp +++ b/src/plugins/platforms/android/qandroideventdispatcher.cpp @@ -77,8 +77,11 @@ void QAndroidEventDispatcher::goingToStop(bool stop) wakeUp(); } -int QAndroidEventDispatcher::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, timespec *timeout) +bool QAndroidEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags flags) { + if (m_goingToStop.load()) + flags |= QEventLoop::ExcludeSocketNotifiers | QEventLoop::X11ExcludeTimers; + { AndroidDeadlockProtector protector; if (protector.acquire() && m_stopRequest.testAndSetAcquire(StopRequest, Stopping)) { @@ -86,21 +89,10 @@ int QAndroidEventDispatcher::select(int nfds, fd_set *readfds, fd_set *writefds, wakeUp(); } } - return QUnixEventDispatcherQPA::select(nfds, readfds, writefds, exceptfds, timeout); -} -bool QAndroidEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags flags) -{ - if (m_goingToStop.load()) { - return QUnixEventDispatcherQPA::processEvents(flags /*| QEventLoop::ExcludeUserInputEvents*/ - | QEventLoop::ExcludeSocketNotifiers - | QEventLoop::X11ExcludeTimers); - } else { - return QUnixEventDispatcherQPA::processEvents(flags); - } + return QUnixEventDispatcherQPA::processEvents(flags); } - QAndroidEventDispatcherStopper *QAndroidEventDispatcherStopper::instance() { static QAndroidEventDispatcherStopper androidEventDispatcherStopper; diff --git a/src/plugins/platforms/android/qandroideventdispatcher.h b/src/plugins/platforms/android/qandroideventdispatcher.h index 946bae5b20..e2c4770467 100644 --- a/src/plugins/platforms/android/qandroideventdispatcher.h +++ b/src/plugins/platforms/android/qandroideventdispatcher.h @@ -50,9 +50,6 @@ public: void goingToStop(bool stop); protected: - int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, - timespec *timeout); - bool processEvents(QEventLoop::ProcessEventsFlags flags); private: diff --git a/src/plugins/platforms/android/qandroidinputcontext.cpp b/src/plugins/platforms/android/qandroidinputcontext.cpp index 0eddb26959..2e4c3d71ab 100644 --- a/src/plugins/platforms/android/qandroidinputcontext.cpp +++ b/src/plugins/platforms/android/qandroidinputcontext.cpp @@ -339,7 +339,7 @@ QAndroidInputContext::QAndroidInputContext() : QPlatformInputContext(), m_composingTextStart(-1), m_blockUpdateSelection(false), m_batchEditNestingLevel(0), m_focusObject(0) { jclass clazz = QJNIEnvironmentPrivate::findClass(QtNativeInputConnectionClassName); - if (clazz == NULL) { + if (Q_UNLIKELY(!clazz)) { qCritical() << "Native registration unable to find class '" << QtNativeInputConnectionClassName << '\''; @@ -347,7 +347,7 @@ QAndroidInputContext::QAndroidInputContext() } QJNIEnvironmentPrivate env; - if (env->RegisterNatives(clazz, methods, sizeof(methods) / sizeof(methods[0])) < 0) { + if (Q_UNLIKELY(env->RegisterNatives(clazz, methods, sizeof(methods) / sizeof(methods[0])) < 0)) { qCritical() << "RegisterNatives failed for '" << QtNativeInputConnectionClassName << '\''; @@ -355,7 +355,7 @@ QAndroidInputContext::QAndroidInputContext() } clazz = QJNIEnvironmentPrivate::findClass(QtExtractedTextClassName); - if (clazz == NULL) { + if (Q_UNLIKELY(!clazz)) { qCritical() << "Native registration unable to find class '" << QtExtractedTextClassName << '\''; @@ -364,43 +364,43 @@ QAndroidInputContext::QAndroidInputContext() m_extractedTextClass = static_cast<jclass>(env->NewGlobalRef(clazz)); m_classConstructorMethodID = env->GetMethodID(m_extractedTextClass, "<init>", "()V"); - if (m_classConstructorMethodID == NULL) { + if (Q_UNLIKELY(!m_classConstructorMethodID)) { qCritical() << "GetMethodID failed"; return; } m_partialEndOffsetFieldID = env->GetFieldID(m_extractedTextClass, "partialEndOffset", "I"); - if (m_partialEndOffsetFieldID == NULL) { + if (Q_UNLIKELY(!m_partialEndOffsetFieldID)) { qCritical() << "Can't find field partialEndOffset"; return; } m_partialStartOffsetFieldID = env->GetFieldID(m_extractedTextClass, "partialStartOffset", "I"); - if (m_partialStartOffsetFieldID == NULL) { + if (Q_UNLIKELY(!m_partialStartOffsetFieldID)) { qCritical() << "Can't find field partialStartOffset"; return; } m_selectionEndFieldID = env->GetFieldID(m_extractedTextClass, "selectionEnd", "I"); - if (m_selectionEndFieldID == NULL) { + if (Q_UNLIKELY(!m_selectionEndFieldID)) { qCritical() << "Can't find field selectionEnd"; return; } m_selectionStartFieldID = env->GetFieldID(m_extractedTextClass, "selectionStart", "I"); - if (m_selectionStartFieldID == NULL) { + if (Q_UNLIKELY(!m_selectionStartFieldID)) { qCritical() << "Can't find field selectionStart"; return; } m_startOffsetFieldID = env->GetFieldID(m_extractedTextClass, "startOffset", "I"); - if (m_startOffsetFieldID == NULL) { + if (Q_UNLIKELY(!m_startOffsetFieldID)) { qCritical() << "Can't find field startOffset"; return; } m_textFieldID = env->GetFieldID(m_extractedTextClass, "text", "Ljava/lang/String;"); - if (m_textFieldID == NULL) { + if (Q_UNLIKELY(!m_textFieldID)) { qCritical() << "Can't find field text"; return; } diff --git a/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp b/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp index 5725f5793e..a21aac51b4 100644 --- a/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp +++ b/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp @@ -47,7 +47,7 @@ void QAndroidPlatformFontDatabase::populateFontDatabase() QString fontpath = fontDir(); QDir dir(fontpath); - if (!dir.exists()) { + if (Q_UNLIKELY(!dir.exists())) { qFatal("QFontDatabase: Cannot find font directory %s - is Qt installed correctly?", qPrintable(fontpath)); } diff --git a/src/plugins/platforms/android/qandroidplatformintegration.cpp b/src/plugins/platforms/android/qandroidplatformintegration.cpp index 2a127f5c3c..23d242a95f 100644 --- a/src/plugins/platforms/android/qandroidplatformintegration.cpp +++ b/src/plugins/platforms/android/qandroidplatformintegration.cpp @@ -120,14 +120,14 @@ QAndroidPlatformIntegration::QAndroidPlatformIntegration(const QStringList ¶ m_androidPlatformNativeInterface = new QAndroidPlatformNativeInterface(); m_eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY); - if (m_eglDisplay == EGL_NO_DISPLAY) + if (Q_UNLIKELY(m_eglDisplay == EGL_NO_DISPLAY)) qFatal("Could not open egl display"); EGLint major, minor; - if (!eglInitialize(m_eglDisplay, &major, &minor)) + if (Q_UNLIKELY(!eglInitialize(m_eglDisplay, &major, &minor))) qFatal("Could not initialize egl display"); - if (!eglBindAPI(EGL_OPENGL_ES_API)) + if (Q_UNLIKELY(!eglBindAPI(EGL_OPENGL_ES_API))) qFatal("Could not bind GL_ES API"); m_primaryScreen = new QAndroidPlatformScreen(); diff --git a/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp b/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp index 57d3bfaf22..85f51d7d29 100644 --- a/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp +++ b/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp @@ -175,7 +175,7 @@ void QAndroidPlatformOpenGLWindow::createEgl(EGLConfig config) m_androidSurfaceObject = QJNIObjectPrivate(); m_eglSurface = eglCreateWindowSurface(m_eglDisplay, config, m_nativeWindow, NULL); m_format = q_glFormatFromConfig(m_eglDisplay, config, window()->requestedFormat()); - if (m_eglSurface == EGL_NO_SURFACE) { + if (Q_UNLIKELY(m_eglSurface == EGL_NO_SURFACE)) { EGLint error = eglGetError(); eglTerminate(m_eglDisplay); qFatal("EGL Error : Could not create the egl surface: error = 0x%x\n", error); diff --git a/src/plugins/platforms/android/qandroidplatformtheme.cpp b/src/plugins/platforms/android/qandroidplatformtheme.cpp index 5531910555..94e132fc9a 100644 --- a/src/plugins/platforms/android/qandroidplatformtheme.cpp +++ b/src/plugins/platforms/android/qandroidplatformtheme.cpp @@ -204,12 +204,12 @@ QJsonObject AndroidStyle::loadStyleData() QJsonParseError error; QJsonDocument document = QJsonDocument::fromJson(f.readAll(), &error); - if (document.isNull()) { + if (Q_UNLIKELY(document.isNull())) { qCritical() << error.errorString(); return QJsonObject(); } - if (!document.isObject()) { + if (Q_UNLIKELY(!document.isObject())) { qCritical() << "Style.json does not contain a valid style."; return QJsonObject(); } @@ -219,7 +219,7 @@ QJsonObject AndroidStyle::loadStyleData() static std::shared_ptr<AndroidStyle> loadAndroidStyle(QPalette *defaultPalette) { double pixelDensity = QHighDpiScaling::isActive() ? QtAndroid::pixelDensity() : 1.0; - std::shared_ptr<AndroidStyle> style(new AndroidStyle); + std::shared_ptr<AndroidStyle> style = std::make_shared<AndroidStyle>(); style->m_styleData = AndroidStyle::loadStyleData(); if (style->m_styleData.isEmpty()) return std::shared_ptr<AndroidStyle>(); |