Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions example/flutter_example/lib/view_model/view_model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,7 @@ class ViewModel {
var status = await Permission.notification.status;
if (!status.isGranted) {
status = await Permission.notification.request();
Mindbox.instance.updateNotificationPermissionStatus(
granted: status.isGranted);
Mindbox.instance.refreshNotificationPermissionStatus();
}
}

Expand Down
24 changes: 14 additions & 10 deletions mindbox/lib/mindbox.dart
Original file line number Diff line number Diff line change
Expand Up @@ -147,20 +147,24 @@ class Mindbox {
MindboxPlatform.instance.registerInAppCallbacks(inAppCallbacks: callbacks);
}

/// Updates the notification permission status.
/// This method is kept for backward compatibility. The `granted` argument is ignored.
///
/// The [granted] parameter specifies whether the permission for notifications
/// has been granted:
///
/// - `true` indicates that the user has granted permission.
/// - `false` indicates that the user has denied permission.
/// The SDK reads the current system authorization status and, if it differs
/// from the last known value, sends an update to the backend.
@Deprecated('Use `refreshNotificationPermissionStatus` instead')
void updateNotificationPermissionStatus({required bool granted}) {
MindboxPlatform.instance.refreshNotificationPermissionStatus();
}

/// Checks the current system authorization status for push notifications
/// and reports any changes to Mindbox.
///
/// Example usage:
/// ```dart
/// Mindbox.instance.updateNotificationPermissionStatus(granted: true);
void updateNotificationPermissionStatus({required bool granted}) {
MindboxPlatform.instance
.updateNotificationPermissionStatus(granted: granted);
/// Mindbox.instance.refreshNotificationPermissionStatus();
/// ```
void refreshNotificationPermissionStatus() {
MindboxPlatform.instance.refreshNotificationPermissionStatus();
}

/// Writes a log message to the native Mindbox logging system.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,8 @@ class MindboxAndroidPlugin : FlutterPlugin, MethodCallHandler, ActivityAware, Ne
}
}
}
"updateNotificationPermissionStatus" -> {

"refreshNotificationPermissionStatus" -> {
Mindbox.updateNotificationPermissionStatus(context = context)
}

Expand Down
4 changes: 2 additions & 2 deletions mindbox_android/lib/src/mindbox_android_platform.dart
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,8 @@ class MindboxAndroidPlatform extends MindboxPlatform {

// Method for to send notification permission status
@override
void updateNotificationPermissionStatus({required bool granted}) {
_methodHandler.updateNotificationPermissionStatus(granted: granted);
void refreshNotificationPermissionStatus() {
_methodHandler.refreshNotificationPermissionStatus();
}

@override
Expand Down
8 changes: 3 additions & 5 deletions mindbox_ios/ios/Classes/SwiftMindboxIosPlugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -164,11 +164,9 @@ public class SwiftMindboxIosPlugin: NSObject, FlutterPlugin {
} else {
Mindbox.logger.log(level: .info, message: "Use default callback")
}
case "updateNotificationPermissionStatus":
guard let granted = call.arguments as? Bool else {
return
}
Mindbox.shared.notificationsRequestAuthorization(granted: granted)

case "refreshNotificationPermissionStatus":
Mindbox.shared.refreshNotificationPermissionStatus()

case "writeNativeLog":
guard let args = call.arguments as? [Any], args.count >= 2 else {
Expand Down
4 changes: 2 additions & 2 deletions mindbox_ios/lib/src/mindbox_ios_platform.dart
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,8 @@ class MindboxIosPlatform extends MindboxPlatform {

// Method for to send notification permission status
@override
void updateNotificationPermissionStatus({required bool granted}) {
_methodHandler.updateNotificationPermissionStatus(granted: granted);
void refreshNotificationPermissionStatus() {
_methodHandler.refreshNotificationPermissionStatus();
}

/// Writes a log message to the native Mindbox logging system.
Expand Down
5 changes: 2 additions & 3 deletions mindbox_platform_interface/lib/src/mindbox_platform.dart
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,8 @@ abstract class MindboxPlatform {
'setLogLevel() has not been implemented.');

/// Method for sending notification permission status
void updateNotificationPermissionStatus({required bool granted}) =>
throw UnimplementedError(
'updateNotificationPermissionStatus() has not been implemented');
void refreshNotificationPermissionStatus() => throw UnimplementedError(
'refreshNotificationPermissionStatus() has not been implemented');

/// Writes a log message to the native Mindbox logging system.
void writeNativeLog({required String message, required LogLevel logLevel}) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@ class MindboxMethodHandler {
}

/// Method for sending notification permission status
void updateNotificationPermissionStatus({required bool granted}) async {
await channel.invokeMethod('updateNotificationPermissionStatus', granted);
void refreshNotificationPermissionStatus() async {
await channel.invokeMethod('refreshNotificationPermissionStatus');
}

/// Method for registers a list of InAppCallback instances to handle clicks
Expand Down
Loading