Skip to content

Commit fd5e913

Browse files
authored
Add mixpanel events for submit app flow (#1252)
2 parents 795748d + c0077d0 commit fd5e913

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

app/lib/pages/apps/add_app.dart

+15-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
33
import 'package:friend_private/backend/preferences.dart';
44
import 'package:friend_private/pages/apps/providers/add_app_provider.dart';
55
import 'package:friend_private/pages/apps/widgets/external_trigger_fields_widget.dart';
6+
import 'package:friend_private/utils/analytics/mixpanel.dart';
67
import 'package:friend_private/widgets/confirmation_dialog.dart';
78
import 'package:gradient_borders/gradient_borders.dart';
89
import 'package:provider/provider.dart';
@@ -69,6 +70,7 @@ class _AddAppPageState extends State<AddAppPage> {
6970
children: [
7071
GestureDetector(
7172
onTap: () {
73+
MixpanelManager().pageOpened('App Submission Help');
7274
launchUrl(Uri.parse('https://omi.me/apps/introduction'));
7375
},
7476
child: Container(
@@ -548,8 +550,20 @@ class _AddAppPageState extends State<AddAppPage> {
548550
}
549551
},
550552
onConfirm: () async {
553+
if (provider.privacyLevel == 'private') {
554+
MixpanelManager().privateAppSubmitted({
555+
'app_name': provider.appNameController.text,
556+
'app_category': provider.appCategory,
557+
'app_capabilities': provider.capabilities,
558+
});
559+
} else {
560+
MixpanelManager().publicAppSubmitted({
561+
'app_name': provider.appNameController.text,
562+
'app_category': provider.appCategory,
563+
'app_capabilities': provider.capabilities,
564+
});
565+
}
551566
SharedPreferencesUtil().showSubmitAppConfirmation = showSubmitAppConfirmation;
552-
553567
Navigator.pop(context);
554568
await provider.submitApp();
555569
},

app/lib/pages/apps/page.dart

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:friend_private/pages/apps/list_item.dart';
55
import 'package:friend_private/pages/chat/widgets/animated_mini_banner.dart';
66
import 'package:friend_private/providers/connectivity_provider.dart';
77
import 'package:friend_private/providers/app_provider.dart';
8+
import 'package:friend_private/utils/analytics/mixpanel.dart';
89
import 'package:friend_private/utils/other/temp.dart';
910
import 'package:friend_private/widgets/dialog.dart';
1011
import 'package:provider/provider.dart';
@@ -59,6 +60,7 @@ class _AppsPageState extends State<AppsPage> with AutomaticKeepAliveClientMixin
5960
),
6061
InkWell(
6162
onTap: () {
63+
MixpanelManager().pageOpened('Submit App');
6264
routeToPage(context, const AddAppPage());
6365
},
6466
child: AnimatedMiniBanner(

app/lib/utils/analytics/mixpanel.dart

+4
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ class MixpanelManager {
102102
setUserProperty('Apps Enabled Count', _preferences.enabledAppsCount);
103103
}
104104

105+
void privateAppSubmitted(Map<String, dynamic> properties) => track('Private App Submitted', properties: properties);
106+
107+
void publicAppSubmitted(Map<String, dynamic> properties) => track('Public App Submitted', properties: properties);
108+
105109
void appDisabled(String appId) {
106110
track('App Disabled', properties: {'app_id': appId});
107111
setUserProperty('Apps Enabled Count', _preferences.enabledAppsCount);

0 commit comments

Comments
 (0)