#ifdef Q_OS_MACOS
setUserNotificationCenterDelegate();
- checkNotificationAuth();
+ checkNotificationAuth(MacNotificationAuthorizationOptions::Default); // No provisional auth, ask user explicitly first time
registerNotificationCategories(QString(tr("Download")));
#else
connect(AccountManager::instance(), &AccountManager::accountAdded,
};
#ifdef Q_OS_MACOS
+enum MacNotificationAuthorizationOptions {
+ Default = 0,
+ Provisional
+};
+
void setUserNotificationCenterDelegate();
-void checkNotificationAuth();
+void checkNotificationAuth(MacNotificationAuthorizationOptions authOptions = MacNotificationAuthorizationOptions::Provisional);
void registerNotificationCategories(const QString &localizedDownloadString);
bool canOsXSendUserNotification();
void sendOsXUserNotification(const QString &title, const QString &message);
namespace OCC {
+enum MacNotificationAuthorizationOptions {
+ Default = 0,
+ Provisional
+};
+
double statusBarThickness()
{
return [NSStatusBar systemStatusBar].thickness;
[[UNUserNotificationCenter currentNotificationCenter] setNotificationCategories:[NSSet setWithObjects:generalCategory, updateCategory, nil]];
}
-void checkNotificationAuth()
+void checkNotificationAuth(MacNotificationAuthorizationOptions additionalAuthOption = MacNotificationAuthorizationOptions::Provisional)
{
UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
- [center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert + UNAuthorizationOptionSound + UNAuthorizationOptionProvisional)
+ UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert + UNAuthorizationOptionSound;
+
+ if(additionalAuthOption == MacNotificationAuthorizationOptions::Provisional) {
+ authOptions += UNAuthorizationOptionProvisional;
+ }
+
+ [center requestAuthorizationWithOptions:(authOptions)
completionHandler:^(BOOL granted, NSError * _Nullable error) {
// Enable or disable features based on authorization.
if(granted) {