From ad503d68a7147e2b5ae6f05c5747cc8cd0f3fdcd Mon Sep 17 00:00:00 2001 From: Egor Kitselyuk Date: Wed, 5 Mar 2025 17:34:45 +0300 Subject: [PATCH 1/6] WMRUSTORE-38: Add Rustore --- .../flutter_example/android/app/build.gradle | 16 ++++- .../android/app/src/main/AndroidManifest.xml | 11 ++++ .../flutter_example/MainApplication.kt | 3 +- .../MindboxRuStoreMessagingService.kt | 61 +++++++++++++++++++ example/flutter_example/android/build.gradle | 4 ++ mindbox/lib/mindbox.dart | 9 +++ mindbox_android/android/build.gradle | 5 +- .../mindbox_android/MindboxAndroidPlugin.kt | 8 +++ .../lib/src/mindbox_android_platform.dart | 6 ++ .../ios/Classes/SwiftMindboxIosPlugin.swift | 4 ++ mindbox_ios/ios/mindbox_ios.podspec | 6 +- mindbox_ios/lib/src/mindbox_ios_platform.dart | 6 ++ .../lib/src/mindbox_platform.dart | 4 ++ .../lib/src/types/mindbox_method_handler.dart | 10 +++ 14 files changed, 145 insertions(+), 8 deletions(-) create mode 100644 example/flutter_example/android/app/src/main/kotlin/cloud/mindbox/flutter_example/MindboxRuStoreMessagingService.kt diff --git a/example/flutter_example/android/app/build.gradle b/example/flutter_example/android/app/build.gradle index 647a4b6..d0ae407 100644 --- a/example/flutter_example/android/app/build.gradle +++ b/example/flutter_example/android/app/build.gradle @@ -51,6 +51,15 @@ android { multiDexEnabled true } + signingConfigs { + debug { + storePassword "android" + keyAlias "androiddebugkey" + storeFile file("debug.keystore") + keyPassword "android" + } + } + buildTypes { release { signingConfig signingConfigs.debug @@ -63,7 +72,7 @@ flutter { source '../..' } -ext.mindbox_version = "2.11.0" +ext.mindbox_version = "2.13.0" dependencies { implementation 'androidx.multidex:multidex:2.0.1' @@ -73,10 +82,13 @@ dependencies { implementation platform('com.google.firebase:firebase-bom:32.8.1') implementation 'com.google.firebase:firebase-messaging:23.4.1' //https://developers.mindbox.ru/docs/huawei-send-push-notifications-flutter - implementation "cloud.mindbox:mindbox-huawei" + implementation 'cloud.mindbox:mindbox-huawei' implementation 'com.huawei.hms:push:6.11.0.300' implementation 'com.google.code.gson:gson:2.8.8' + implementation 'cloud.mindbox:mindbox-rustore' + implementation 'ru.rustore.sdk:pushclient:6.5.1' + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.1" } \ No newline at end of file diff --git a/example/flutter_example/android/app/src/main/AndroidManifest.xml b/example/flutter_example/android/app/src/main/AndroidManifest.xml index b879ede..7bf2f79 100644 --- a/example/flutter_example/android/app/src/main/AndroidManifest.xml +++ b/example/flutter_example/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,5 @@ + + + + + + + + diff --git a/example/flutter_example/android/app/src/main/kotlin/cloud/mindbox/flutter_example/MainApplication.kt b/example/flutter_example/android/app/src/main/kotlin/cloud/mindbox/flutter_example/MainApplication.kt index e30640a..efe632e 100644 --- a/example/flutter_example/android/app/src/main/kotlin/cloud/mindbox/flutter_example/MainApplication.kt +++ b/example/flutter_example/android/app/src/main/kotlin/cloud/mindbox/flutter_example/MainApplication.kt @@ -6,6 +6,7 @@ import android.util.Log import cloud.mindbox.mobile_sdk.Mindbox import cloud.mindbox.mindbox_firebase.MindboxFirebase import cloud.mindbox.mindbox_huawei.MindboxHuawei +import cloud.mindbox.mindbox_rustore.MindboxRuStore import cloud.mindbox.mobile_sdk.pushes.MindboxRemoteMessage import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugin.common.EventChannel @@ -20,7 +21,7 @@ class MainApplication : Application() { private val gson = Gson() override fun onCreate() { super.onCreate() - Mindbox.initPushServices(applicationContext, listOf(MindboxFirebase, MindboxHuawei)) + Mindbox.initPushServices(applicationContext, listOf(MindboxFirebase, MindboxHuawei, MindboxRuStore)) } fun setupEventChannel(flutterEngine: FlutterEngine) { diff --git a/example/flutter_example/android/app/src/main/kotlin/cloud/mindbox/flutter_example/MindboxRuStoreMessagingService.kt b/example/flutter_example/android/app/src/main/kotlin/cloud/mindbox/flutter_example/MindboxRuStoreMessagingService.kt new file mode 100644 index 0000000..4d9b066 --- /dev/null +++ b/example/flutter_example/android/app/src/main/kotlin/cloud/mindbox/flutter_example/MindboxRuStoreMessagingService.kt @@ -0,0 +1,61 @@ +package cloud.mindbox.flutter_example + +import cloud.mindbox.mindbox_rustore.MindboxRuStore +import cloud.mindbox.mobile_sdk.Mindbox +import kotlinx.coroutines.* +import ru.rustore.sdk.pushclient.messaging.model.RemoteMessage +import ru.rustore.sdk.pushclient.messaging.service.RuStoreMessagingService + +class MindboxRuStoreMessagingService: RuStoreMessagingService() { + + private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) + + override fun onNewToken(token: String) { + super.onNewToken(token) + Mindbox.updatePushToken(applicationContext, token, MindboxRuStore) + } + + override fun onMessageReceived(remoteMessage: RemoteMessage) { + super.onMessageReceived(remoteMessage) + val channelId = "default_channel_id" + val channelName = "default_channel_name" + val channelDescription = "default_channel_description" + val pushSmallIcon = android.R.drawable.ic_dialog_info + + // On some devices, onMessageReceived may be executed on the main thread + // We recommend handling push messages asynchronously + coroutineScope.launch { + val messageWasHandled = Mindbox.handleRemoteMessage( + context = applicationContext, + message = remoteMessage, + activities = mapOf(), + channelId = channelId, + channelName = channelName, + pushSmallIcon = pushSmallIcon, + defaultActivity = MainActivity::class.java, + channelDescription = channelDescription + ) + + // Method for checking if push is from Mindbox + val isMindboxPush = MindboxRuStore.isMindboxPush(remoteMessage = remoteMessage) + + // Method for getting info from Mindbox push + val mindboxMessage = + MindboxRuStore.convertToMindboxRemoteMessage(remoteMessage = remoteMessage) + // If you want to save the notification you can call your save function from here. + mindboxMessage?.let { + val app = applicationContext as MainApplication + app.saveNotification(it) + } + + if (!messageWasHandled) { + //If the push notification was not from Mindbox or it contains incorrect data, then you can write a fallback to process it + } + } + } + + override fun onDestroy() { + super.onDestroy() + coroutineScope.cancel() + } +} \ No newline at end of file diff --git a/example/flutter_example/android/build.gradle b/example/flutter_example/android/build.gradle index a10c5fa..695702e 100644 --- a/example/flutter_example/android/build.gradle +++ b/example/flutter_example/android/build.gradle @@ -4,6 +4,8 @@ buildscript { google() mavenCentral() maven {url 'https://developer.huawei.com/repo/'} + maven {url 'https://artifactory-external.vkpartner.ru/artifactory/maven'} + mavenLocal() } dependencies { @@ -19,6 +21,8 @@ allprojects { google() mavenCentral() maven {url 'https://developer.huawei.com/repo/'} + maven {url 'https://artifactory-external.vkpartner.ru/artifactory/maven'} + mavenLocal() } } diff --git a/mindbox/lib/mindbox.dart b/mindbox/lib/mindbox.dart index 4e9f382..eee3afd 100644 --- a/mindbox/lib/mindbox.dart +++ b/mindbox/lib/mindbox.dart @@ -68,10 +68,19 @@ class Mindbox { /// Method to obtain token. /// /// Callback returns token when Mindbox SDK is initialized. See also [init]. + @Deprecated('Use method getTokens') void getToken(Function(String token) callback) { MindboxPlatform.instance.getToken(callback: callback); } + /// Method to obtain all push tokens as json string like + /// {"FCM":"token1","HMS":"token2","RuStore":"token3"} + /// + /// Callback returns tokens when Mindbox SDK is initialized. See also [init]. + void getTokens(Function(String token) callback) { + MindboxPlatform.instance.getTokens(callback: callback); + } + /// Method for managing sdk logging void setLogLevel({required LogLevel logLevel}) { MindboxPlatform.instance.setLogLevel(logLevel: logLevel); diff --git a/mindbox_android/android/build.gradle b/mindbox_android/android/build.gradle index 0aa6eec..f2b5cdb 100644 --- a/mindbox_android/android/build.gradle +++ b/mindbox_android/android/build.gradle @@ -6,6 +6,7 @@ buildscript { repositories { google() mavenCentral() + mavenLocal() } dependencies { @@ -42,12 +43,12 @@ android { } defaultConfig { - minSdkVersion 19 + minSdkVersion 21 targetSdkVersion 34 } } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - api 'cloud.mindbox:mobile-sdk:2.11.0' + api 'cloud.mindbox:mobile-sdk:2.13.0' } diff --git a/mindbox_android/android/src/main/kotlin/cloud/mindbox/mindbox_android/MindboxAndroidPlugin.kt b/mindbox_android/android/src/main/kotlin/cloud/mindbox/mindbox_android/MindboxAndroidPlugin.kt index 59daea2..817f61f 100644 --- a/mindbox_android/android/src/main/kotlin/cloud/mindbox/mindbox_android/MindboxAndroidPlugin.kt +++ b/mindbox_android/android/src/main/kotlin/cloud/mindbox/mindbox_android/MindboxAndroidPlugin.kt @@ -98,6 +98,14 @@ class MindboxAndroidPlugin : FlutterPlugin, MethodCallHandler, ActivityAware, Ne result.success(token) } } + "getTokens" -> { + if (tokenSubscription != null) { + Mindbox.disposePushTokenSubscription(tokenSubscription!!) + } + tokenSubscription = Mindbox.subscribePushTokens { token -> + result.success(token) + } + } "executeAsyncOperation" -> { if (call.arguments is List<*>) { val args = call.arguments as List<*> diff --git a/mindbox_android/lib/src/mindbox_android_platform.dart b/mindbox_android/lib/src/mindbox_android_platform.dart index 0dff99b..0f76745 100644 --- a/mindbox_android/lib/src/mindbox_android_platform.dart +++ b/mindbox_android/lib/src/mindbox_android_platform.dart @@ -37,6 +37,12 @@ class MindboxAndroidPlatform extends MindboxPlatform { _methodHandler.getToken(callback: callback); } + /// Returns tokens to callback. + @override + void getTokens({required Function(String token) callback}) { + _methodHandler.getTokens(callback: callback); + } + /// Method for managing sdk logging @override void setLogLevel({required LogLevel logLevel}) { diff --git a/mindbox_ios/ios/Classes/SwiftMindboxIosPlugin.swift b/mindbox_ios/ios/Classes/SwiftMindboxIosPlugin.swift index 281d98a..1e4b8cb 100644 --- a/mindbox_ios/ios/Classes/SwiftMindboxIosPlugin.swift +++ b/mindbox_ios/ios/Classes/SwiftMindboxIosPlugin.swift @@ -98,6 +98,10 @@ public class SwiftMindboxIosPlugin: NSObject, FlutterPlugin { Mindbox.shared.getDeviceUUID { deviceUUID in result(deviceUUID) } + case "getTokens": + Mindbox.shared.getAPNSToken { + token in result("{\"APNS\":\"\(token)\"}") + } case "getToken": Mindbox.shared.getAPNSToken { token in result(token) diff --git a/mindbox_ios/ios/mindbox_ios.podspec b/mindbox_ios/ios/mindbox_ios.podspec index 5febb91..db3ca9d 100644 --- a/mindbox_ios/ios/mindbox_ios.podspec +++ b/mindbox_ios/ios/mindbox_ios.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'mindbox_ios' - s.version = '2.11.0' + s.version = '2.13.0' s.summary = 'Mindbox Flutter SDK' s.description = <<-DESC The implementation of 'mindbox' plugin for the iOS platform @@ -15,8 +15,8 @@ The implementation of 'mindbox' plugin for the iOS platform s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'Mindbox', '2.11.0' - s.dependency 'MindboxNotifications', '2.11.0' + s.dependency 'Mindbox', '2.13.0' + s.dependency 'MindboxNotifications', '2.13.0' s.platform = :ios, '12.0' # Flutter.framework does not contain a i386 slice. diff --git a/mindbox_ios/lib/src/mindbox_ios_platform.dart b/mindbox_ios/lib/src/mindbox_ios_platform.dart index b39b271..22b6cbe 100644 --- a/mindbox_ios/lib/src/mindbox_ios_platform.dart +++ b/mindbox_ios/lib/src/mindbox_ios_platform.dart @@ -37,6 +37,12 @@ class MindboxIosPlatform extends MindboxPlatform { _methodHandler.getToken(callback: callback); } + /// Returns token to callback. + @override + void getTokens({required Function(String token) callback}) { + _methodHandler.getTokens(callback: callback); + } + /// Method for managing sdk logging @override void setLogLevel({required LogLevel logLevel}) { diff --git a/mindbox_platform_interface/lib/src/mindbox_platform.dart b/mindbox_platform_interface/lib/src/mindbox_platform.dart index 6e403d2..dacbef6 100644 --- a/mindbox_platform_interface/lib/src/mindbox_platform.dart +++ b/mindbox_platform_interface/lib/src/mindbox_platform.dart @@ -43,6 +43,10 @@ abstract class MindboxPlatform { void getToken({required Function(String) callback}) => throw UnimplementedError('getToken() has not been implemented.'); + /// Method to obtain tokens. + void getTokens({required Function(String) callback}) => + throw UnimplementedError('getToken() has not been implemented.'); + /// Method for handling push-notification click. Returns link and payload to /// callback. void onPushClickReceived({ diff --git a/mindbox_platform_interface/lib/src/types/mindbox_method_handler.dart b/mindbox_platform_interface/lib/src/types/mindbox_method_handler.dart index ccb2c5d..cd1ec62 100644 --- a/mindbox_platform_interface/lib/src/types/mindbox_method_handler.dart +++ b/mindbox_platform_interface/lib/src/types/mindbox_method_handler.dart @@ -120,6 +120,16 @@ class MindboxMethodHandler { } } + /// Returns token to callback. + void getTokens({required Function(String token) callback}) async { + if (_initialized) { + callback(await channel.invokeMethod('getTokens') ?? 'null'); + } else { + _pendingCallbackMethods.add( + _PendingCallbackMethod(methodName: 'getTokens', callback: callback)); + } + } + /// Method for managing SDK logging void setLogLevel({required LogLevel logLevel}) async { await channel.invokeMethod('setLogLevel', logLevel.index); From 27e2a8d6df5e06665e387d38dbeee125f3edd40d Mon Sep 17 00:00:00 2001 From: Egor Kitselyuk Date: Wed, 5 Mar 2025 18:02:43 +0300 Subject: [PATCH 2/6] WMRUSTORE-38: Update dependencies --- mindbox/pubspec.yaml | 2 +- mindbox/test/mindbox_test.dart | 4 ++-- mindbox_android/pubspec.yaml | 2 +- mindbox_ios/pubspec.yaml | 2 +- mindbox_platform_interface/pubspec.yaml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mindbox/pubspec.yaml b/mindbox/pubspec.yaml index 5a4f4d7..fe792e8 100644 --- a/mindbox/pubspec.yaml +++ b/mindbox/pubspec.yaml @@ -1,6 +1,6 @@ name: mindbox description: Flutter Mindbox SDK. Plugin wrapper over of Mindbox iOS/Android SDK. -version: 2.11.0 +version: 2.13.0 homepage: https://mindbox.cloud/ repository: https://github.com/mindbox-cloud/flutter-sdk/tree/master/mindbox documentation: https://developers.mindbox.ru/docs/flutter-sdk-integration diff --git a/mindbox/test/mindbox_test.dart b/mindbox/test/mindbox_test.dart index 79bb0d4..8ce29f4 100644 --- a/mindbox/test/mindbox_test.dart +++ b/mindbox/test/mindbox_test.dart @@ -64,7 +64,7 @@ void main() { test('When SDK was initialized, getToken() should return token', () async { final completer = Completer(); - Mindbox.instance.getToken((deviceToken) => completer.complete(deviceToken)); + Mindbox.instance.getTokens((deviceToken) => completer.complete(deviceToken)); final validConfig = Configuration( domain: 'domain', @@ -81,7 +81,7 @@ void main() { () async { final completer = Completer(); - Mindbox.instance.getToken((deviceToken) => completer.complete(deviceToken)); + Mindbox.instance.getTokens((deviceToken) => completer.complete(deviceToken)); expect(completer.isCompleted, isFalse); }); diff --git a/mindbox_android/pubspec.yaml b/mindbox_android/pubspec.yaml index 1dc06f6..336bf6e 100644 --- a/mindbox_android/pubspec.yaml +++ b/mindbox_android/pubspec.yaml @@ -1,6 +1,6 @@ name: mindbox_android description: The implementation of 'mindbox' plugin for the Android platform. -version: 2.11.0 +version: 2.13.0 homepage: https://mindbox.cloud/ repository: https://github.com/mindbox-cloud/flutter-sdk/tree/master/mindbox_android diff --git a/mindbox_ios/pubspec.yaml b/mindbox_ios/pubspec.yaml index 6c23d8a..ac49c16 100644 --- a/mindbox_ios/pubspec.yaml +++ b/mindbox_ios/pubspec.yaml @@ -1,6 +1,6 @@ name: mindbox_ios description: The implementation of 'mindbox' plugin for the iOS platform. -version: 2.11.0 +version: 2.13.0 homepage: https://mindbox.cloud/ repository: https://github.com/mindbox-cloud/flutter-sdk/tree/master/mindbox_ios diff --git a/mindbox_platform_interface/pubspec.yaml b/mindbox_platform_interface/pubspec.yaml index 29b5b35..41e8d86 100644 --- a/mindbox_platform_interface/pubspec.yaml +++ b/mindbox_platform_interface/pubspec.yaml @@ -1,6 +1,6 @@ name: mindbox_platform_interface description: Mindbox platform interface. -version: 2.11.0 +version: 2.13.0 homepage: https://mindbox.cloud/ repository: https://github.com/mindbox-cloud/flutter-sdk/tree/master/mindbox_platform_interface From fe6a418e83aa3c12e3f96ffe319a7749f563dbc5 Mon Sep 17 00:00:00 2001 From: Egor Kitselyuk Date: Wed, 5 Mar 2025 18:16:00 +0300 Subject: [PATCH 3/6] WMRUSTORE-38: Fix tests --- mindbox/test/mindbox_test.dart | 18 +++++++++++++++++- .../mindbox_mock_method_call_handler.dart | 6 +++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/mindbox/test/mindbox_test.dart b/mindbox/test/mindbox_test.dart index 8ce29f4..54e50c7 100644 --- a/mindbox/test/mindbox_test.dart +++ b/mindbox/test/mindbox_test.dart @@ -64,7 +64,7 @@ void main() { test('When SDK was initialized, getToken() should return token', () async { final completer = Completer(); - Mindbox.instance.getTokens((deviceToken) => completer.complete(deviceToken)); + Mindbox.instance.getToken((deviceToken) => completer.complete(deviceToken)); final validConfig = Configuration( domain: 'domain', @@ -77,6 +77,22 @@ void main() { expect(await completer.future, equals('dummy-token')); }); + test('When SDK was initialized, getTokens() should return tokens', () async { + final completer = Completer(); + + Mindbox.instance.getTokens((deviceToken) => completer.complete(deviceToken)); + + final validConfig = Configuration( + domain: 'domain', + endpointIos: 'endpointIos', + endpointAndroid: 'endpointAndroid', + subscribeCustomerIfCreated: true); + + Mindbox.instance.init(configuration: validConfig); + + expect(await completer.future, equals('dummy-tokens')); + }); + test('When SDK was not initialized, getToken() should not return token', () async { final completer = Completer(); diff --git a/mindbox_platform_interface/lib/src/types/mindbox_mock_method_call_handler.dart b/mindbox_platform_interface/lib/src/types/mindbox_mock_method_call_handler.dart index 1e6ebeb..f7a2e9c 100644 --- a/mindbox_platform_interface/lib/src/types/mindbox_mock_method_call_handler.dart +++ b/mindbox_platform_interface/lib/src/types/mindbox_mock_method_call_handler.dart @@ -17,6 +17,10 @@ Future mindboxMockMethodCallHandler(MethodCall methodCall) async { return Future.value('dummy-device-uuid'); case 'getToken': return Future.value('dummy-token'); + case 'getTokens': + return Future.value('dummy-tokens'); + case 'getSdkVersion': + return Future.value('dummy-sdk-version'); case 'executeSyncOperation': final String operationSystemName = methodCall.arguments[0]; if (operationSystemName == 'dummy-validation-error') { @@ -62,6 +66,6 @@ Future mindboxMockMethodCallHandler(MethodCall methodCall) async { } return Future.value('dummy-response'); default: - return 'dummy-sdk-version'; + return 'dummy-not-mocked'; } } From ebfa1dded1457c7739a707b7d1a6edab330017cf Mon Sep 17 00:00:00 2001 From: Egor Kitselyuk Date: Wed, 5 Mar 2025 18:21:46 +0300 Subject: [PATCH 4/6] WMRUSTORE-38: remove deprecated lint rule --- mindbox/analysis_options.yaml | 3 ++- mindbox_android/analysis_options.yaml | 3 ++- mindbox_ios/analysis_options.yaml | 3 ++- mindbox_platform_interface/analysis_options.yaml | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/mindbox/analysis_options.yaml b/mindbox/analysis_options.yaml index cd0b9a5..703b70e 100644 --- a/mindbox/analysis_options.yaml +++ b/mindbox/analysis_options.yaml @@ -26,4 +26,5 @@ linter: prefer_typing_uninitialized_variables: true public_member_api_docs: true always_put_control_body_on_new_line: true - curly_braces_in_flow_control_structures: true \ No newline at end of file + curly_braces_in_flow_control_structures: true + deprecated_member_use_from_same_package: false \ No newline at end of file diff --git a/mindbox_android/analysis_options.yaml b/mindbox_android/analysis_options.yaml index cd0b9a5..703b70e 100644 --- a/mindbox_android/analysis_options.yaml +++ b/mindbox_android/analysis_options.yaml @@ -26,4 +26,5 @@ linter: prefer_typing_uninitialized_variables: true public_member_api_docs: true always_put_control_body_on_new_line: true - curly_braces_in_flow_control_structures: true \ No newline at end of file + curly_braces_in_flow_control_structures: true + deprecated_member_use_from_same_package: false \ No newline at end of file diff --git a/mindbox_ios/analysis_options.yaml b/mindbox_ios/analysis_options.yaml index cd0b9a5..703b70e 100644 --- a/mindbox_ios/analysis_options.yaml +++ b/mindbox_ios/analysis_options.yaml @@ -26,4 +26,5 @@ linter: prefer_typing_uninitialized_variables: true public_member_api_docs: true always_put_control_body_on_new_line: true - curly_braces_in_flow_control_structures: true \ No newline at end of file + curly_braces_in_flow_control_structures: true + deprecated_member_use_from_same_package: false \ No newline at end of file diff --git a/mindbox_platform_interface/analysis_options.yaml b/mindbox_platform_interface/analysis_options.yaml index cd0b9a5..703b70e 100644 --- a/mindbox_platform_interface/analysis_options.yaml +++ b/mindbox_platform_interface/analysis_options.yaml @@ -26,4 +26,5 @@ linter: prefer_typing_uninitialized_variables: true public_member_api_docs: true always_put_control_body_on_new_line: true - curly_braces_in_flow_control_structures: true \ No newline at end of file + curly_braces_in_flow_control_structures: true + deprecated_member_use_from_same_package: false \ No newline at end of file From 0f18895baebee829cf1f225f734211d9c17244df Mon Sep 17 00:00:00 2001 From: Egor Kitselyuk Date: Wed, 5 Mar 2025 18:33:16 +0300 Subject: [PATCH 5/6] WMRUSTORE-38: ignore deprecated lint rule --- mindbox/analysis_options.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mindbox/analysis_options.yaml b/mindbox/analysis_options.yaml index 703b70e..c8bcac4 100644 --- a/mindbox/analysis_options.yaml +++ b/mindbox/analysis_options.yaml @@ -27,4 +27,7 @@ linter: public_member_api_docs: true always_put_control_body_on_new_line: true curly_braces_in_flow_control_structures: true - deprecated_member_use_from_same_package: false \ No newline at end of file + +analyzer: + errors: + deprecated_member_use_from_same_package: ignore \ No newline at end of file From 0de47e07f12156ecfd288367139ea9fe340e12fd Mon Sep 17 00:00:00 2001 From: Egor Kitselyuk Date: Wed, 5 Mar 2025 18:33:29 +0300 Subject: [PATCH 6/6] WMRUSTORE-38: ignore deprecated lint rule --- mindbox_android/analysis_options.yaml | 5 ++++- mindbox_ios/analysis_options.yaml | 5 ++++- mindbox_platform_interface/analysis_options.yaml | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/mindbox_android/analysis_options.yaml b/mindbox_android/analysis_options.yaml index 703b70e..c8bcac4 100644 --- a/mindbox_android/analysis_options.yaml +++ b/mindbox_android/analysis_options.yaml @@ -27,4 +27,7 @@ linter: public_member_api_docs: true always_put_control_body_on_new_line: true curly_braces_in_flow_control_structures: true - deprecated_member_use_from_same_package: false \ No newline at end of file + +analyzer: + errors: + deprecated_member_use_from_same_package: ignore \ No newline at end of file diff --git a/mindbox_ios/analysis_options.yaml b/mindbox_ios/analysis_options.yaml index 703b70e..c8bcac4 100644 --- a/mindbox_ios/analysis_options.yaml +++ b/mindbox_ios/analysis_options.yaml @@ -27,4 +27,7 @@ linter: public_member_api_docs: true always_put_control_body_on_new_line: true curly_braces_in_flow_control_structures: true - deprecated_member_use_from_same_package: false \ No newline at end of file + +analyzer: + errors: + deprecated_member_use_from_same_package: ignore \ No newline at end of file diff --git a/mindbox_platform_interface/analysis_options.yaml b/mindbox_platform_interface/analysis_options.yaml index 703b70e..c8bcac4 100644 --- a/mindbox_platform_interface/analysis_options.yaml +++ b/mindbox_platform_interface/analysis_options.yaml @@ -27,4 +27,7 @@ linter: public_member_api_docs: true always_put_control_body_on_new_line: true curly_braces_in_flow_control_structures: true - deprecated_member_use_from_same_package: false \ No newline at end of file + +analyzer: + errors: + deprecated_member_use_from_same_package: ignore \ No newline at end of file