Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qandroidextras.cpp File Reference
#include "qandroidextras_p.h"
#include <QtCore/qbuffer.h>
#include <QtCore/qdatastream.h>
#include <QtCore/qjnienvironment.h>
#include <QtCore/qvariant.h>
#include <QtCore/qmutex.h>
#include <QtCore/qtimer.h>
#include <QtCore/qset.h>
#include "moc_qandroidextras_p.cpp"
+ Include dependency graph for qandroidextras.cpp:

Go to the source code of this file.

Classes

class  QAndroidParcelPrivate
 
struct  FileDescriptor
 
class  QAndroidBinderPrivate
 
class  QAndroidActivityResultReceiverPrivate
 
class  QAndroidServicePrivate
 

Namespaces

namespace  QtAndroidPrivate
 \preliminary \inmodule QtCorePrivate
 

Typedefs

using PendingPermissionRequestsHash = QHash< int, QSharedPointer< QPromise< QtAndroidPrivate::PermissionResult > > >
 

Functions

static int uniqueActivityRequestCode ()
 
QtAndroidPrivate::PermissionResult resultFromAndroid (jint value)
 
 Q_GLOBAL_STATIC (PendingPermissionRequestsHash, g_pendingPermissionRequests)
 
static int nextRequestCode ()
 
static void sendRequestPermissionsResult (JNIEnv *env, jobject *obj, jint requestCode, jobjectArray permissions, jintArray grantResults)
 
QFuture< QtAndroidPrivate::PermissionResult > requestPermissionsInternal (const QStringList &permissions)
 

Variables

static Q_CONSTINIT QBasicAtomicInteger< uintnextUniqueActivityRequestCode = Q_BASIC_ATOMIC_INITIALIZER(0)
 
static const char qtNativeClassName [] = "org/qtproject/qt/android/QtNative"
 
static Q_CONSTINIT QBasicMutex g_pendingPermissionRequestsMutex
 

Typedef Documentation

◆ PendingPermissionRequestsHash

using PendingPermissionRequestsHash = QHash<int, QSharedPointer<QPromise<QtAndroidPrivate::PermissionResult> >>

Definition at line 1036 of file qandroidextras.cpp.

Function Documentation

◆ nextRequestCode()

static int nextRequestCode ( )
static

Definition at line 1041 of file qandroidextras.cpp.

References Q_BASIC_ATOMIC_INITIALIZER.

Referenced by requestPermissionsInternal().

+ Here is the caller graph for this function:

◆ Q_GLOBAL_STATIC()

Q_GLOBAL_STATIC ( PendingPermissionRequestsHash  ,
g_pendingPermissionRequests   
)

◆ requestPermissionsInternal()

QFuture< QtAndroidPrivate::PermissionResult > requestPermissionsInternal ( const QStringList permissions)

◆ resultFromAndroid()

QtAndroidPrivate::PermissionResult resultFromAndroid ( jint  value)

Definition at line 1031 of file qandroidextras.cpp.

Referenced by sendRequestPermissionsResult().

+ Here is the caller graph for this function:

◆ sendRequestPermissionsResult()

static void sendRequestPermissionsResult ( JNIEnv *  env,
jobject *  obj,
jint  requestCode,
jobjectArray  permissions,
jintArray  grantResults 
)
static

This function is called when the result of the permission request is available. Once a permission is requested, the result is braodcast by the OS and listened to by QtActivity which passes it to C++ through a native JNI method call.

Definition at line 1054 of file qandroidextras.cpp.

References QSet< T >::constEnd(), QSet< T >::constFind(), QSet< T >::erase(), g_pendingPermissionRequestsMutex, i, it, Q_UNUSED, qWarning, QtAndroidPrivate::releaseAndroidDeadlockProtector(), request, resultFromAndroid(), results, and QMutexLocker< Mutex >::unlock().

Referenced by QtAndroidPrivate::registerPermissionNatives().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ uniqueActivityRequestCode()

static int uniqueActivityRequestCode ( )
static

Definition at line 457 of file qandroidextras.cpp.

References QBasicAtomicInteger< T >::fetchAndAddRelaxed(), nextUniqueActivityRequestCode, and qWarning.

Referenced by QAndroidActivityResultReceiverPrivate::globalRequestCode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ g_pendingPermissionRequestsMutex

Q_CONSTINIT QBasicMutex g_pendingPermissionRequestsMutex
static

◆ nextUniqueActivityRequestCode

Q_CONSTINIT QBasicAtomicInteger<uint> nextUniqueActivityRequestCode = Q_BASIC_ATOMIC_INITIALIZER(0)
static

Definition at line 454 of file qandroidextras.cpp.

Referenced by uniqueActivityRequestCode().

◆ qtNativeClassName

const char qtNativeClassName[] = "org/qtproject/qt/android/QtNative"
static