mirror of
https://github.com/QuasarApp/QtAndroidTools.git
synced 2025-04-30 06:54:31 +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
|
||||
{
|
||||
APP_STATE_CREATE = 0,
|
||||
APP_STATE_START = 1,
|
||||
APP_STATE_STOP = 2,
|
||||
APP_STATE_DESTROY = 3
|
||||
APP_STATE_START,
|
||||
APP_STATE_STOP,
|
||||
APP_STATE_DESTROY
|
||||
};
|
||||
void SetNewAppState(APP_STATE NewState);
|
||||
};
|
||||
|
@ -37,6 +37,8 @@ QObject* QAndroidAppPermissions::qmlInstance(QQmlEngine *engine, QJSEngine *scri
|
||||
|
||||
void QAndroidAppPermissions::requestPermissions(const QStringList &permissionsNameList)
|
||||
{
|
||||
QtAndroid::PermissionResultMap ResultMap;
|
||||
|
||||
if(QtAndroid::androidSdkVersion() >= 23)
|
||||
{
|
||||
QStringList PermissionsNotGrantedList;
|
||||
@ -49,7 +51,7 @@ void QAndroidAppPermissions::requestPermissions(const QStringList &permissionsNa
|
||||
}
|
||||
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++)
|
||||
{
|
||||
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)
|
||||
@ -75,7 +82,9 @@ void QAndroidAppPermissions::requestPermission(const QString &permissionName)
|
||||
}
|
||||
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)
|
||||
{
|
||||
if(ResultMap.count() > 0)
|
||||
emit requestPermissionsResults(ConvertToVariantList(ResultMap));
|
||||
}
|
||||
|
||||
QVariantList QAndroidAppPermissions::ConvertToVariantList(const QtAndroid::PermissionResultMap &ResultMap)
|
||||
{
|
||||
QtAndroid::PermissionResultMap::const_iterator PermissionItem = ResultMap.constBegin();
|
||||
QVariantList PermissionsList;
|
||||
|
||||
while(PermissionItem != ResultMap.constEnd())
|
||||
{
|
||||
const bool Granted = (PermissionItem.value() == QtAndroid::PermissionResult::Granted) ? true : false;
|
||||
emit requestPermissionsResults(PermissionItem.key(), Granted);
|
||||
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 <QQmlEngine>
|
||||
#include <QVariant>
|
||||
|
||||
class QAndroidAppPermissions : public QObject
|
||||
{
|
||||
@ -40,8 +41,9 @@ public:
|
||||
Q_INVOKABLE bool shouldShowRequestPermissionInfo(const QString &permissionName);
|
||||
|
||||
signals:
|
||||
void requestPermissionsResults(const QString &permissionName, bool granted);
|
||||
void requestPermissionsResults(const QVariantList &results);
|
||||
|
||||
private:
|
||||
void RequestPermissionResults(const QtAndroid::PermissionResultMap &ResultMap);
|
||||
QVariantList ConvertToVariantList(const QtAndroid::PermissionResultMap &ResultMap);
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user