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

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -188,40 +188,6 @@ class FirebaseAnalytics extends FirebasePluginPlatform {
await _delegate.setUserId(id: id, callOptions: callOptions);
}

/// Sets the current [screenName], which specifies the current visual context
/// in your app.
///
/// This helps identify the areas in your app where users spend their time
/// and how they interact with your app.
///
/// The class name can optionally be overridden by the [screenClassOverride]
/// parameter.
///
/// The [screenName] and [screenClassOverride] remain in effect until the
/// current `Activity` (in Android) or `UIViewController` (in iOS) changes or
/// a new call to [setCurrentScreen] is made.
///
/// Setting a null [screenName] clears the current screen name.
///
/// See also:
///
/// * https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.html#setCurrentScreen(android.app.Activity, java.lang.String, java.lang.String)
/// * https://firebase.google.com/docs/reference/ios/firebaseanalytics/api/reference/Classes/FIRAnalytics#setscreennamescreenclass
@Deprecated(
'setCurrentScreen() has been deprecated. Please use logScreenView()',
)
Future<void> setCurrentScreen({
required String? screenName,
String screenClassOverride = 'Flutter',
AnalyticsCallOptions? callOptions,
}) async {
await _delegate.setCurrentScreen(
screenName: screenName,
screenClassOverride: screenClassOverride,
callOptions: callOptions,
);
}

static final RegExp _nonAlphaNumeric = RegExp('[^a-zA-Z0-9_]');
static final RegExp _alpha = RegExp('[a-zA-Z]');

Expand Down Expand Up @@ -661,26 +627,6 @@ class FirebaseAnalytics extends FirebasePluginPlatform {
);
}

/// Logs the standard `set_checkout_option` event. This event has been deprecated and is unsupported in updated Enhanced Ecommerce reports.
/// See: https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event.html#SET_CHECKOUT_OPTION
@Deprecated('logSetCheckoutOption() has been deprecated.')
Future<void> logSetCheckoutOption({
required int checkoutStep,
required String checkoutOption,
Map<String, Object>? parameters,
}) {
_assertParameterTypesAreCorrect(parameters);

return _delegate.logEvent(
name: 'set_checkout_option',
parameters: filterOutNulls(<String, Object?>{
_CHECKOUT_STEP: checkoutStep,
_CHECKOUT_OPTION: checkoutOption,
if (parameters != null) ...parameters,
}),
);
}

/// Logs the standard `login` event.
///
/// Apps with a login feature can report this event to signify that a user
Expand Down Expand Up @@ -1601,9 +1547,3 @@ const String _PROMOTION_ID = 'promotion_id';

/// The name of a product promotion
const String _PROMOTION_NAME = 'promotion_name';

/// The checkout step (1..N).
const String _CHECKOUT_STEP = 'checkout_step';

/// Some option on a step in an ecommerce flow.
const String _CHECKOUT_OPTION = 'checkout_option';
Original file line number Diff line number Diff line change
Expand Up @@ -133,25 +133,6 @@ class MethodChannelFirebaseAnalytics extends FirebaseAnalyticsPlatform {
}
}

@override
Future<void> setCurrentScreen({
String? screenName,
String? screenClassOverride,
AnalyticsCallOptions? callOptions,
}) {
try {
return _api.logEvent(<String, Object?>{
'eventName': 'screen_view',
'parameters': <String, String?>{
'screen_name': screenName,
'screen_class': screenClassOverride,
},
});
} catch (e, s) {
convertPlatformException(e, s);
}
}

@override
Future<void> setUserProperty({
required String name,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,19 +138,6 @@ abstract class FirebaseAnalyticsPlatform extends PlatformInterface {
throw UnimplementedError('setUserId() is not implemented');
}

/// Sets the current screen name, which specifies the current visual context
/// in your app.
///
/// Setting a null [screenName] clears the current screen name.
/// [callOptions] are for web platform only.
Future<void> setCurrentScreen({
String? screenName,
String? screenClassOverride,
AnalyticsCallOptions? callOptions,
}) {
throw UnimplementedError('setCurrentScreen() is not implemented');
}

/// Sets a user property to the given value.
/// Setting a null [value] removes the user property.
/// [callOptions] are for web platform only.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_analytics_platform_interface/src/platform_interface/platform_interface_firebase_analytics.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';

Expand Down Expand Up @@ -115,21 +115,6 @@ void main() {
);
});

test('throws if .setCurrentScreen() not implemented', () async {
await expectLater(
() => firebaseAnalyticsPlatform.setCurrentScreen(
screenName: 'test screen',
),
throwsA(
isA<UnimplementedError>().having(
(e) => e.message,
'message',
'setCurrentScreen() is not implemented',
),
),
);
});

test('throws if .setUserProperty() not implemented', () async {
await expectLater(
() => firebaseAnalyticsPlatform.setUserProperty(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,20 +118,6 @@ class FirebaseAnalyticsWeb extends FirebaseAnalyticsPlatform {
});
}

@override
Future<void> setCurrentScreen({
String? screenName,
String? screenClassOverride,
AnalyticsCallOptions? callOptions,
}) async {
return convertWebExceptions(() {
return _delegate.setCurrentScreen(
screenName: screenName,
callOptions: callOptions,
);
});
}

@override
Future<void> resetAnalyticsData() async {
throw UnimplementedError('resetAnalyticsData() is not supported on Web.');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,18 +102,6 @@ class Analytics extends JsObjectWrapper<analytics_interop.AnalyticsJsImpl> {
);
}

void setCurrentScreen({
String? screenName,
AnalyticsCallOptions? callOptions,
}) {
return analytics_interop.logEvent(
jsObject,
'screen_view'.toJS,
{'firebase_screen': screenName}.jsify(),
callOptions?.asMap().jsify() as JSObject?,
);
}

void setUserId({
String? id,
AnalyticsCallOptions? callOptions,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,6 @@ void main() {
verifyNoMoreInteractions(analytics);
});

test('setCurrentScreen', () {
const screenName = 'screenName';
// screenClassOverride is discarded in web.
analytics.setCurrentScreen(
screenName: screenName,
);
verify(analytics.setCurrentScreen(screenName: screenName));
verifyNoMoreInteractions(analytics);
});

test('setAnalyticsCollectionEnabled', () {
analytics.setAnalyticsCollectionEnabled(true);
verify(analytics.setAnalyticsCollectionEnabled(true));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,26 +214,6 @@ class MockFirebaseAnalyticsWeb extends _i1.Mock
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);

@override
_i5.Future<void> setCurrentScreen({
String? screenName,
String? screenClassOverride,
_i3.AnalyticsCallOptions? callOptions,
}) =>
(super.noSuchMethod(
Invocation.method(
#setCurrentScreen,
[],
{
#screenName: screenName,
#screenClassOverride: screenClassOverride,
#callOptions: callOptions,
},
),
returnValue: _i5.Future<void>.value(),
returnValueForMissingStub: _i5.Future<void>.value(),
) as _i5.Future<void>);

@override
_i5.Future<void> resetAnalyticsData() => (super.noSuchMethod(
Invocation.method(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,10 +177,12 @@ void main() {
);
});

test('setCurrentScreen', () async {
test('logScreenView', () async {
await expectLater(
// ignore: deprecated_member_use
FirebaseAnalytics.instance.setCurrentScreen(screenName: 'screen-name'),
FirebaseAnalytics.instance.logScreenView(
screenName: 'screen-name',
screenClass: 'TestScreen',
),
completes,
);
});
Expand Down
Loading