diff --git a/AUTHORS b/AUTHORS index ecc2c3e512b1..7d26d11e1d4c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -25,3 +25,4 @@ Tuyển Vũ Xuân Sarthak Verma Mike Diarmid Invertase +Elliot Hesp diff --git a/packages/firebase_analytics/CHANGELOG.md b/packages/firebase_analytics/CHANGELOG.md index 4642488475d9..b13e21e93f5f 100644 --- a/packages/firebase_analytics/CHANGELOG.md +++ b/packages/firebase_analytics/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.3 + +* Add resetAnalyticsData method + ## 2.0.2+1 * Log messages about automatic configuration of the default app are now less confusing. diff --git a/packages/firebase_analytics/android/src/main/java/io/flutter/plugins/firebaseanalytics/FirebaseAnalyticsPlugin.java b/packages/firebase_analytics/android/src/main/java/io/flutter/plugins/firebaseanalytics/FirebaseAnalyticsPlugin.java index 8255b3fc5efa..7215afb1e73b 100755 --- a/packages/firebase_analytics/android/src/main/java/io/flutter/plugins/firebaseanalytics/FirebaseAnalyticsPlugin.java +++ b/packages/firebase_analytics/android/src/main/java/io/flutter/plugins/firebaseanalytics/FirebaseAnalyticsPlugin.java @@ -56,6 +56,9 @@ public void onMethodCall(MethodCall call, Result result) { case "setUserProperty": handleSetUserProperty(call, result); break; + case "resetAnalyticsData": + handleResetAnalyticsData(call, result); + break; default: result.notImplemented(); break; @@ -123,6 +126,11 @@ private void handleSetUserProperty(MethodCall call, Result result) { result.success(null); } + private void handleResetAnalyticsData(MethodCall call, Result result) { + firebaseAnalytics.resetAnalyticsData(); + result.success(null); + } + private static Bundle createBundleFromMap(Map map) { if (map == null) { return null; diff --git a/packages/firebase_analytics/ios/Classes/FirebaseAnalyticsPlugin.m b/packages/firebase_analytics/ios/Classes/FirebaseAnalyticsPlugin.m index 6ae3d92d3952..5567dbda64b4 100644 --- a/packages/firebase_analytics/ios/Classes/FirebaseAnalyticsPlugin.m +++ b/packages/firebase_analytics/ios/Classes/FirebaseAnalyticsPlugin.m @@ -59,6 +59,9 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result NSNumber *enabled = [NSNumber numberWithBool:call.arguments]; [[FIRAnalyticsConfiguration sharedInstance] setAnalyticsCollectionEnabled:[enabled boolValue]]; result(nil); + } else if ([@"resetAnalyticsData" isEqualToString:call.method]) { + [FIRAnalytics resetAnalyticsData]; + result(nil); } else { result(FlutterMethodNotImplemented); } diff --git a/packages/firebase_analytics/lib/firebase_analytics.dart b/packages/firebase_analytics/lib/firebase_analytics.dart index de7a0d81e4a1..02e4dc5c4cda 100755 --- a/packages/firebase_analytics/lib/firebase_analytics.dart +++ b/packages/firebase_analytics/lib/firebase_analytics.dart @@ -160,6 +160,14 @@ class FirebaseAnalytics { }); } + /// Clears all analytics data for this app from the device and resets the app instance id. + Future resetAnalyticsData() async { + // TODO(amirh): remove this on when the invokeMethod update makes it to stable Flutter. + // https://github.com/flutter/flutter/issues/26431 + // ignore: strong_mode_implicit_dynamic_method + await _channel.invokeMethod('resetAnalyticsData'); + } + /// Logs the standard `add_payment_info` event. /// /// This event signifies that a user has submitted their payment information diff --git a/packages/firebase_analytics/pubspec.yaml b/packages/firebase_analytics/pubspec.yaml index 6ca58cdcc1cd..852f88e02d87 100755 --- a/packages/firebase_analytics/pubspec.yaml +++ b/packages/firebase_analytics/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for Google Analytics for Firebase, an app measuremen solution that provides insight on app usage and user engagement on Android and iOS. author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_analytics -version: 2.0.2+1 +version: 2.0.3 flutter: plugin: diff --git a/packages/firebase_analytics/test/firebase_analytics_test.dart b/packages/firebase_analytics/test/firebase_analytics_test.dart index 2c0339e34e51..13c731421662 100755 --- a/packages/firebase_analytics/test/firebase_analytics_test.dart +++ b/packages/firebase_analytics/test/firebase_analytics_test.dart @@ -114,6 +114,11 @@ void main() { expect(invokedMethod, 'setSessionTimeoutDuration'); expect(arguments, 234); }); + + test('resetAnalyticsData', () async { + await analytics.resetAnalyticsData(); + expect(invokedMethod, 'resetAnalyticsData'); + }); }); group('$FirebaseAnalytics analytics events', () {