File indexing completed on 2024-05-05 03:57:00
0001 /* 0002 SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #include "knotificationpermission.h" 0007 #include <qnamespace.h> 0008 0009 #ifdef Q_OS_ANDROID 0010 #include <QtCore/private/qandroidextras_p.h> 0011 0012 Qt::PermissionStatus KNotificationPermission::checkPermission() 0013 { 0014 if (QtAndroidPrivate::androidSdkVersion() < 33) { 0015 return Qt::PermissionStatus::Granted; 0016 } 0017 0018 return QtAndroidPrivate::checkPermission(QStringLiteral("")).result() == QtAndroidPrivate::PermissionResult::Authorized ? Qt::PermissionStatus::Granted 0019 : Qt::PermissionStatus::Denied; 0020 } 0021 0022 void KNotificationPermission::requestPermission(QObject *context, const std::function<void(Qt::PermissionStatus)> &callback) 0023 { 0024 if (QtAndroidPrivate::androidSdkVersion() < 33) { 0025 callback(Qt::PermissionStatus::Granted); 0026 } 0027 0028 QtAndroidPrivate::requestPermission(QStringLiteral("android.permission.POST_NOTIFICATIONS")) 0029 .then(context, [&callback](QtAndroidPrivate::PermissionResult res) { 0030 callback(res == QtAndroidPrivate::PermissionResult::Authorized ? Qt::PermissionStatus::Granted : Qt::PermissionStatus::Denied); 0031 }); 0032 } 0033 0034 #else 0035 Qt::PermissionStatus KNotificationPermission::checkPermission() 0036 { 0037 return Qt::PermissionStatus::Granted; 0038 } 0039 0040 void KNotificationPermission::requestPermission([[maybe_unused]] QObject *context, const std::function<void(Qt::PermissionStatus)> &callback) 0041 { 0042 callback(Qt::PermissionStatus::Granted); 0043 } 0044 #endif