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