mirror of
https://github.com/QuasarApp/QtAndroidTools.git
synced 2025-04-30 23:04:32 +00:00
Changed the way permission results are passed to main app
This commit is contained in:
parent
b926f059f4
commit
25d2d91cbe
@ -158,9 +158,9 @@ private:
|
|||||||
enum APP_STATE
|
enum APP_STATE
|
||||||
{
|
{
|
||||||
APP_STATE_CREATE = 0,
|
APP_STATE_CREATE = 0,
|
||||||
APP_STATE_START = 1,
|
APP_STATE_START,
|
||||||
APP_STATE_STOP = 2,
|
APP_STATE_STOP,
|
||||||
APP_STATE_DESTROY = 3
|
APP_STATE_DESTROY
|
||||||
};
|
};
|
||||||
void SetNewAppState(APP_STATE NewState);
|
void SetNewAppState(APP_STATE NewState);
|
||||||
};
|
};
|
||||||
|
@ -37,6 +37,8 @@ QObject* QAndroidAppPermissions::qmlInstance(QQmlEngine *engine, QJSEngine *scri
|
|||||||
|
|
||||||
void QAndroidAppPermissions::requestPermissions(const QStringList &permissionsNameList)
|
void QAndroidAppPermissions::requestPermissions(const QStringList &permissionsNameList)
|
||||||
{
|
{
|
||||||
|
QtAndroid::PermissionResultMap ResultMap;
|
||||||
|
|
||||||
if(QtAndroid::androidSdkVersion() >= 23)
|
if(QtAndroid::androidSdkVersion() >= 23)
|
||||||
{
|
{
|
||||||
QStringList PermissionsNotGrantedList;
|
QStringList PermissionsNotGrantedList;
|
||||||
@ -49,7 +51,7 @@ void QAndroidAppPermissions::requestPermissions(const QStringList &permissionsNa
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
emit requestPermissionsResults(permissionsNameList[i], true);
|
ResultMap[permissionsNameList[i]] = QtAndroid::PermissionResult::Granted;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,9 +64,14 @@ void QAndroidAppPermissions::requestPermissions(const QStringList &permissionsNa
|
|||||||
{
|
{
|
||||||
for(int i = 0; i < permissionsNameList.count(); i++)
|
for(int i = 0; i < permissionsNameList.count(); i++)
|
||||||
{
|
{
|
||||||
emit requestPermissionsResults(permissionsNameList[i], true);
|
ResultMap[permissionsNameList[i]] = QtAndroid::PermissionResult::Granted;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(ResultMap.size() > 0)
|
||||||
|
{
|
||||||
|
emit requestPermissionsResults(ConvertToVariantList(ResultMap));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QAndroidAppPermissions::requestPermission(const QString &permissionName)
|
void QAndroidAppPermissions::requestPermission(const QString &permissionName)
|
||||||
@ -75,7 +82,9 @@ void QAndroidAppPermissions::requestPermission(const QString &permissionName)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
emit requestPermissionsResults(permissionName, true);
|
QtAndroid::PermissionResultMap ResultMap;
|
||||||
|
ResultMap[permissionName] = QtAndroid::PermissionResult::Granted;
|
||||||
|
emit requestPermissionsResults(ConvertToVariantList(ResultMap));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,15 +100,24 @@ bool QAndroidAppPermissions::shouldShowRequestPermissionInfo(const QString &perm
|
|||||||
|
|
||||||
void QAndroidAppPermissions::RequestPermissionResults(const QtAndroid::PermissionResultMap &ResultMap)
|
void QAndroidAppPermissions::RequestPermissionResults(const QtAndroid::PermissionResultMap &ResultMap)
|
||||||
{
|
{
|
||||||
if(ResultMap.count() > 0)
|
emit requestPermissionsResults(ConvertToVariantList(ResultMap));
|
||||||
{
|
}
|
||||||
QtAndroid::PermissionResultMap::const_iterator PermissionItem = ResultMap.constBegin();
|
|
||||||
|
QVariantList QAndroidAppPermissions::ConvertToVariantList(const QtAndroid::PermissionResultMap &ResultMap)
|
||||||
while(PermissionItem != ResultMap.constEnd())
|
{
|
||||||
{
|
QtAndroid::PermissionResultMap::const_iterator PermissionItem = ResultMap.constBegin();
|
||||||
const bool Granted = (PermissionItem.value() == QtAndroid::PermissionResult::Granted) ? true : false;
|
QVariantList PermissionsList;
|
||||||
emit requestPermissionsResults(PermissionItem.key(), Granted);
|
|
||||||
++PermissionItem;
|
while(PermissionItem != ResultMap.constEnd())
|
||||||
}
|
{
|
||||||
}
|
QVariantMap PermissionResult;
|
||||||
|
|
||||||
|
PermissionResult["name"] = PermissionItem.key();
|
||||||
|
PermissionResult["granted"] = (PermissionItem.value() == QtAndroid::PermissionResult::Granted) ? true : false;
|
||||||
|
PermissionsList << PermissionResult;
|
||||||
|
|
||||||
|
++PermissionItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
return PermissionsList;
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include <QtAndroidExtras>
|
#include <QtAndroidExtras>
|
||||||
#include <QQmlEngine>
|
#include <QQmlEngine>
|
||||||
|
#include <QVariant>
|
||||||
|
|
||||||
class QAndroidAppPermissions : public QObject
|
class QAndroidAppPermissions : public QObject
|
||||||
{
|
{
|
||||||
@ -40,8 +41,9 @@ public:
|
|||||||
Q_INVOKABLE bool shouldShowRequestPermissionInfo(const QString &permissionName);
|
Q_INVOKABLE bool shouldShowRequestPermissionInfo(const QString &permissionName);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void requestPermissionsResults(const QString &permissionName, bool granted);
|
void requestPermissionsResults(const QVariantList &results);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void RequestPermissionResults(const QtAndroid::PermissionResultMap &ResultMap);
|
void RequestPermissionResults(const QtAndroid::PermissionResultMap &ResultMap);
|
||||||
|
QVariantList ConvertToVariantList(const QtAndroid::PermissionResultMap &ResultMap);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user