6177214e-ce7c-49e3-99de-ff9721b26f63 — Commit beb3a3f7

AuthorEdmir Suljic<esu@dwarf.dk>
Date2026-02-26 10:26:43 +0100
Added more events

Changed files

comwell_key_app/lib/check_in/bloc/check_in_cubit.dart    | 16 ++++++++++++++--
 .../lib/presentation/app/bloc/profile_cubit.dart         |  3 ++-
 .../components/comwell_club_signup_bottom_sheet.dart     |  1 +
 comwell_key_app/lib/tracking/comwell_tracking.dart       | 13 ++++++++++---
 .../lib/tracking/trackers/firebase_tracker.dart          | 15 ++++++++++++---
 5 files changed, 39 insertions(+), 9 deletions(-)

Diff

diff --git a/comwell_key_app/lib/check_in/bloc/check_in_cubit.dart b/comwell_key_app/lib/check_in/bloc/check_in_cubit.dart
index 655ade6d..3af31070 100644
--- a/comwell_key_app/lib/check_in/bloc/check_in_cubit.dart
+++ b/comwell_key_app/lib/check_in/bloc/check_in_cubit.dart
@@ -45,9 +45,15 @@ class CheckInCubit extends BaseCubit<CheckInState> {
booking.id,
booking.hotelCode,
);
+
+ final parameters = {
+ 'hotel_name': booking.hotelName,
+ 'booking_reference': booking.confirmationNumber,
+ };
+
safeEmit(state.copyWith(cardState: CheckInStatus.roomFound));
- _tracking.trackCheckedIn();
-
+ _tracking.trackSuccessfulCheckIn(parameters);
+
await _checkInRepository.checkIfSetup();
await _checkInRepository.provisionKey(booking.id, booking.hotelCode);
await Future<void>.delayed(const Duration(milliseconds: 3000));
@@ -56,6 +62,12 @@ class CheckInCubit extends BaseCubit<CheckInState> {
safeEmit(state.copyWith(roomNumber: bookingDetails.roomNumber));
} catch (err, st) {
logError(err, st);
+ final parameters = {
+ 'hotel_name': booking.hotelName,
+ 'booking_reference': booking.confirmationNumber,
+ 'type': err.toString(),
+ };
+ _tracking.trackFailedCheckIn(parameters);
safeEmit(state.copyWith(cardState: CheckInStatus.error));
} finally {
safeEmit(state.copyWith(isLoading: false));
diff --git a/comwell_key_app/lib/presentation/app/bloc/profile_cubit.dart b/comwell_key_app/lib/presentation/app/bloc/profile_cubit.dart
index 3f1f1f0f..7533852f 100644
--- a/comwell_key_app/lib/presentation/app/bloc/profile_cubit.dart
+++ b/comwell_key_app/lib/presentation/app/bloc/profile_cubit.dart
@@ -3,6 +3,7 @@ import 'package:comwell_key_app/base/base_cubit.dart';
import 'package:comwell_key_app/domain/models/user.dart';
import 'package:comwell_key_app/domain/repositories/profile_repository.dart';
import 'package:firebase_analytics/firebase_analytics.dart';
+import 'package:flutter/material.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:package_info_plus/package_info_plus.dart';
import '../../../domain/models/app_error.dart';
@@ -74,7 +75,7 @@ class ProfileCubit extends BaseCubit<ProfileState> {
safeEmit(state.copyWith(user: user));
}
- Future<bool> onComwellClubSignupClick(User user) async {
+ Future<bool> onComwellClubSignupClick(User user, BuildContext context) async {
try {
if (!state.isToSAccepted) return false;
safeEmit(state.loading());
diff --git a/comwell_key_app/lib/presentation/screens/profile/components/comwell_club_signup_bottom_sheet.dart b/comwell_key_app/lib/presentation/screens/profile/components/comwell_club_signup_bottom_sheet.dart
index 5c0dd2a2..ca5c4145 100644
--- a/comwell_key_app/lib/presentation/screens/profile/components/comwell_club_signup_bottom_sheet.dart
+++ b/comwell_key_app/lib/presentation/screens/profile/components/comwell_club_signup_bottom_sheet.dart
@@ -271,6 +271,7 @@ class _ComwellClubSignupBottomSheetState extends State<ComwellClubSignupBottomSh
country: '',
),
),
+ context,
);
if (response == true && context.mounted) {
diff --git a/comwell_key_app/lib/tracking/comwell_tracking.dart b/comwell_key_app/lib/tracking/comwell_tracking.dart
index 7b8d15c4..4dfab762 100644
--- a/comwell_key_app/lib/tracking/comwell_tracking.dart
+++ b/comwell_key_app/lib/tracking/comwell_tracking.dart
@@ -30,12 +30,19 @@ class ComwellTracking {
_firebaseTracking.trackEvent(name);
}
- void trackCheckedIn() {
- _firebaseTracking.trackCheckedIn();
+ void trackSuccessfulCheckIn(Map<String, Object> parameters) {
+ _firebaseTracking.trackSuccessfulCheckIn(parameters);
}
void trackBookNewReservation() {
- print("qqq trackBookNewReservation");
_firebaseTracking.trackBookNewReservation();
}
+
+ void trackComwellClubSignup() {
+ _firebaseTracking.trackComwellClubSignup();
+ }
+
+ void trackFailedCheckIn(Map<String, Object> parameters) {
+ _firebaseTracking.trackFailedCheckIn(parameters);
+ }
}
diff --git a/comwell_key_app/lib/tracking/trackers/firebase_tracker.dart b/comwell_key_app/lib/tracking/trackers/firebase_tracker.dart
index 4e14f7e0..72f5565e 100644
--- a/comwell_key_app/lib/tracking/trackers/firebase_tracker.dart
+++ b/comwell_key_app/lib/tracking/trackers/firebase_tracker.dart
@@ -20,9 +20,11 @@ class FirebaseTracker {
void trackBeginCheckout(comwell.AnalyticsEventItem analyticsEventItem) {
_track(_eventBeginCheckout, analyticsEventItem.toJson());
}
+
void tracklogin() {
_tracking.logLogin();
}
+
void trackEvent(String name) {
_track(name, null);
}
@@ -31,8 +33,12 @@ class FirebaseTracker {
_tracking.logEvent(name: 'click', parameters: {'click_text': 'Book nyt ophold'});
}
- void trackCheckedIn() {
- _tracking.setUserProperty(name: 'checked_in', value: 'true');
+ void trackSuccessfulCheckIn(Map<String, Object> parameters) {
+ _tracking.logEvent(name: 'check_in_success', parameters: parameters);
+ }
+
+ void trackFailedCheckIn(Map<String, Object> parameters) {
+ _tracking.logEvent(name: 'check_in_failure', parameters: parameters);
}
void _track(String name, Map<String, dynamic>? parameters) async {
@@ -53,7 +59,6 @@ class FirebaseTracker {
}
}
void _trackScreen(String name, String screenClass) async {
- print("qqq _trackScreen $name $screenClass");
try {
await _tracking.logScreenView(
screenName: name,
@@ -71,6 +76,10 @@ class FirebaseTracker {
static const _eventRemoveFromCart = "remove_from_cart";
static const _eventBeginCheckout = "begin_checkout";
+ void trackComwellClubSignup() {
+ _tracking.logEvent(name: 'club_sign_up');
+ }
+
// params
// static const _paramScreenClass = "screen_class";
// static const _paramScreenName = "screen_name";