@@ -1,36 +1,26 @@
|
||||
{
|
||||
"project_info": {
|
||||
"project_number": "751933368781",
|
||||
"project_id": "gsf-live",
|
||||
"storage_bucket": "gsf-live.appspot.com"
|
||||
"project_number": "385912853035",
|
||||
"project_id": "getsetfit-629ab",
|
||||
"storage_bucket": "getsetfit-629ab.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:751933368781:android:020c5f5f7ec8ea880dfc84",
|
||||
"mobilesdk_app_id": "1:385912853035:android:6aea48ea205d49ba8d906e",
|
||||
"android_client_info": {
|
||||
"package_name": "com.getsetfit.gsf"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "751933368781-v8k9ajguhps61ged7eis0ol1olflhfhv.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyDd4MVv-SL6rw3t7aYtCW74_lA_GBMwJ_g"
|
||||
"current_key": "AIzaSyDsuNF5SCgl9WbURv8FASws2d3dtBD-TIc"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "751933368781-v8k9ajguhps61ged7eis0ol1olflhfhv.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
]
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1
gsf/firebase.json
Normal file
1
gsf/firebase.json
Normal file
@@ -0,0 +1 @@
|
||||
{"flutter":{"platforms":{"android":{"default":{"projectId":"getsetfit-629ab","appId":"1:385912853035:android:6aea48ea205d49ba8d906e","fileOutput":"android/app/google-services.json"}},"ios":{"default":{"projectId":"getsetfit-629ab","appId":"1:385912853035:ios:3c8d40e9b8cd8cc78d906e","uploadDebugSymbols":true,"fileOutput":"ios/Runner/GoogleService-Info.plist"}},"dart":{"lib/firebase_options.dart":{"projectId":"getsetfit-629ab","configurations":{"android":"1:385912853035:android:6aea48ea205d49ba8d906e","ios":"1:385912853035:ios:3c8d40e9b8cd8cc78d906e"}}}}}}
|
||||
@@ -27,7 +27,7 @@
|
||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
||||
EAC2B08A5EF3DB337047B851 /* (null) in Frameworks */ = {isa = PBXBuildFile; };
|
||||
EAC2B08A5EF3DB337047B851 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; };
|
||||
F28142B6420A67828003E26E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 559CD4C37425C2E8E38C2D7D /* Pods_Runner.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
529068A72A8E5864004ABCB1 /* CoreServices.framework in Frameworks */,
|
||||
529068A52A8E5706004ABCB1 /* BranchSDK in Frameworks */,
|
||||
529068B82A8F4849004ABCB1 /* WebKit.framework in Frameworks */,
|
||||
EAC2B08A5EF3DB337047B851 /* (null) in Frameworks */,
|
||||
EAC2B08A5EF3DB337047B851 /* BuildFile in Frameworks */,
|
||||
F28142B6420A67828003E26E /* Pods_Runner.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -250,6 +250,7 @@
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
||||
226DE2242AA76AB30069AF32 /* Embed Foundation Extensions */,
|
||||
C9D58640702688400651DCCA /* [CP] Embed Pods Frameworks */,
|
||||
0566BE68C33393A00546891A /* FlutterFire: "flutterfire upload-crashlytics-symbols" */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -329,6 +330,24 @@
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
0566BE68C33393A00546891A /* FlutterFire: "flutterfire upload-crashlytics-symbols" */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "FlutterFire: \"flutterfire upload-crashlytics-symbols\"";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\n#!/bin/bash\nPATH=${PATH}:$FLUTTER_ROOT/bin:$HOME/.pub-cache/bin\nflutterfire upload-crashlytics-symbols --upload-symbols-script-path=$PODS_ROOT/FirebaseCrashlytics/upload-symbols --platform=ios --apple-project-path=${SRCROOT} --env-platform-name=${PLATFORM_NAME} --env-configuration=${CONFIGURATION} --env-project-dir=${PROJECT_DIR} --env-built-products-dir=${BUILT_PRODUCTS_DIR} --env-dwarf-dsym-folder-path=${DWARF_DSYM_FOLDER_PATH} --env-dwarf-dsym-file-name=${DWARF_DSYM_FILE_NAME} --env-infoplist-path=${INFOPLIST_PATH} --default-config=default\n";
|
||||
};
|
||||
13EB04CF12534CDD59BBA288 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"originHash" : "da338c7d827a9f8b10177e484783685675c8dff84a9dc59a904db0c53122e9f5",
|
||||
"pins" : [
|
||||
{
|
||||
"identity" : "ios-branch-sdk-spm",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/BranchMetrics/ios-branch-sdk-spm",
|
||||
"state" : {
|
||||
"revision" : "7fbe3085821c8e60241a2037098c6eed76fd2798",
|
||||
"version" : "2.2.0"
|
||||
}
|
||||
}
|
||||
],
|
||||
"version" : 3
|
||||
}
|
||||
@@ -2,22 +2,18 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CLIENT_ID</key>
|
||||
<string>751933368781-0cgjotkpv6o238qrm9g9u1cgcq5pkf91.apps.googleusercontent.com</string>
|
||||
<key>REVERSED_CLIENT_ID</key>
|
||||
<string>com.googleusercontent.apps.751933368781-0cgjotkpv6o238qrm9g9u1cgcq5pkf91</string>
|
||||
<key>API_KEY</key>
|
||||
<string>AIzaSyAEz8aya-EsS6ebSSVgDxc4X6vlU3Lh5EY</string>
|
||||
<string>AIzaSyCSbLj_8QTuCyJlZ_e4jLSxTs-Qj-lG60k</string>
|
||||
<key>GCM_SENDER_ID</key>
|
||||
<string>751933368781</string>
|
||||
<string>385912853035</string>
|
||||
<key>PLIST_VERSION</key>
|
||||
<string>1</string>
|
||||
<key>BUNDLE_ID</key>
|
||||
<string>com.getsetfit</string>
|
||||
<string>com.getsetfit.OneSignalNotificationServiceExtension</string>
|
||||
<key>PROJECT_ID</key>
|
||||
<string>gsf-live</string>
|
||||
<string>getsetfit-629ab</string>
|
||||
<key>STORAGE_BUCKET</key>
|
||||
<string>gsf-live.appspot.com</string>
|
||||
<string>getsetfit-629ab.appspot.com</string>
|
||||
<key>IS_ADS_ENABLED</key>
|
||||
<false></false>
|
||||
<key>IS_ANALYTICS_ENABLED</key>
|
||||
@@ -29,6 +25,6 @@
|
||||
<key>IS_SIGNIN_ENABLED</key>
|
||||
<true></true>
|
||||
<key>GOOGLE_APP_ID</key>
|
||||
<string>1:751933368781:ios:1b07754b53887f3d0dfc84</string>
|
||||
<string>1:385912853035:ios:3c8d40e9b8cd8cc78d906e</string>
|
||||
</dict>
|
||||
</plist>
|
||||
69
gsf/lib/firebase_options.dart
Normal file
69
gsf/lib/firebase_options.dart
Normal file
@@ -0,0 +1,69 @@
|
||||
// File generated by FlutterFire CLI.
|
||||
// ignore_for_file: type=lint
|
||||
import 'package:firebase_core/firebase_core.dart' show FirebaseOptions;
|
||||
import 'package:flutter/foundation.dart'
|
||||
show defaultTargetPlatform, kIsWeb, TargetPlatform;
|
||||
|
||||
/// Default [FirebaseOptions] for use with your Firebase apps.
|
||||
///
|
||||
/// Example:
|
||||
/// ```dart
|
||||
/// import 'firebase_options.dart';
|
||||
/// // ...
|
||||
/// await Firebase.initializeApp(
|
||||
/// options: DefaultFirebaseOptions.currentPlatform,
|
||||
/// );
|
||||
/// ```
|
||||
class DefaultFirebaseOptions {
|
||||
static FirebaseOptions get currentPlatform {
|
||||
if (kIsWeb) {
|
||||
throw UnsupportedError(
|
||||
'DefaultFirebaseOptions have not been configured for web - '
|
||||
'you can reconfigure this by running the FlutterFire CLI again.',
|
||||
);
|
||||
}
|
||||
switch (defaultTargetPlatform) {
|
||||
case TargetPlatform.android:
|
||||
return android;
|
||||
case TargetPlatform.iOS:
|
||||
return ios;
|
||||
case TargetPlatform.macOS:
|
||||
throw UnsupportedError(
|
||||
'DefaultFirebaseOptions have not been configured for macos - '
|
||||
'you can reconfigure this by running the FlutterFire CLI again.',
|
||||
);
|
||||
case TargetPlatform.windows:
|
||||
throw UnsupportedError(
|
||||
'DefaultFirebaseOptions have not been configured for windows - '
|
||||
'you can reconfigure this by running the FlutterFire CLI again.',
|
||||
);
|
||||
case TargetPlatform.linux:
|
||||
throw UnsupportedError(
|
||||
'DefaultFirebaseOptions have not been configured for linux - '
|
||||
'you can reconfigure this by running the FlutterFire CLI again.',
|
||||
);
|
||||
default:
|
||||
throw UnsupportedError(
|
||||
'DefaultFirebaseOptions are not supported for this platform.',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static const FirebaseOptions android = FirebaseOptions(
|
||||
apiKey: 'AIzaSyDsuNF5SCgl9WbURv8FASws2d3dtBD-TIc',
|
||||
appId: '1:385912853035:android:6aea48ea205d49ba8d906e',
|
||||
messagingSenderId: '385912853035',
|
||||
projectId: 'getsetfit-629ab',
|
||||
storageBucket: 'getsetfit-629ab.appspot.com',
|
||||
);
|
||||
|
||||
static const FirebaseOptions ios = FirebaseOptions(
|
||||
apiKey: 'AIzaSyCSbLj_8QTuCyJlZ_e4jLSxTs-Qj-lG60k',
|
||||
appId: '1:385912853035:ios:3c8d40e9b8cd8cc78d906e',
|
||||
messagingSenderId: '385912853035',
|
||||
projectId: 'getsetfit-629ab',
|
||||
storageBucket: 'getsetfit-629ab.appspot.com',
|
||||
iosBundleId: 'com.getsetfit.OneSignalNotificationServiceExtension',
|
||||
);
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'dart:async';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:firebase_analytics/firebase_analytics.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_branch_sdk/flutter_branch_sdk.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -37,39 +38,27 @@ class _HomePageState extends State<HomePage> {
|
||||
StreamSubscription<Map>? streamSubscription;
|
||||
StreamController<String> controllerData = StreamController<String>();
|
||||
AppDataController appDataController = Get.find();
|
||||
static List pageNames = [
|
||||
"Home",
|
||||
"Workout",
|
||||
"Bioscale",
|
||||
"Leaderboard",
|
||||
"Bites"
|
||||
];
|
||||
//Analytics start---
|
||||
|
||||
final FirebaseAnalytics analytics = FirebaseAnalytics.instance;
|
||||
|
||||
//Analytics end---
|
||||
@override
|
||||
void initState() {
|
||||
listenDynamicLinks();
|
||||
callingBannerApiForHomeScreen();
|
||||
|
||||
analytics.setAnalyticsCollectionEnabled(true);
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
// bool apicalled = false;
|
||||
// @override
|
||||
// void initState() {
|
||||
// // TODO: implement initState
|
||||
// super.initState();
|
||||
// // moodOMeter();
|
||||
// // var moodResult = await MoodOMeterService().getMoodOMeter();
|
||||
// // // if()
|
||||
// // if(moodResult.responseStatus != ResponseStatus.success ){
|
||||
// // return const HomePageSkeleton();
|
||||
// // }
|
||||
// }
|
||||
|
||||
// moodOMeter() async {
|
||||
// var moodResult = await MoodOMeterService().getMoodOMeter();
|
||||
// // if()
|
||||
// if(moodResult.responseStatus != ResponseStatus.success ){
|
||||
// // return const HomePageSkeleton();
|
||||
// setState(() {
|
||||
// apicalled = true;
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
//DeepLinkingSetup -by Kishan
|
||||
|
||||
void listenDynamicLinks() async {
|
||||
@@ -212,6 +201,9 @@ class _HomePageState extends State<HomePage> {
|
||||
backgroundColor: Colors.black,
|
||||
body: Obx(
|
||||
() {
|
||||
analytics.logScreenView(
|
||||
screenName: pageNames[homePageController.bottomNavIndex.value],
|
||||
);
|
||||
switch (homePageController.bottomNavIndex.value) {
|
||||
case 0:
|
||||
return const Home();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:firebase_analytics/firebase_analytics.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -137,6 +138,8 @@ class _AppDrawerState extends State<AppDrawer> {
|
||||
children: [
|
||||
headTitel('The Podium'),
|
||||
menuWidget('quiz', 'Quiz Section', () {
|
||||
FirebaseAnalytics.instance
|
||||
.logScreenView(screenName: "Quiz");
|
||||
Get.back();
|
||||
Get.to(
|
||||
() => const QuizHome(),
|
||||
@@ -145,6 +148,8 @@ class _AppDrawerState extends State<AppDrawer> {
|
||||
const SizedBox(height: 15),
|
||||
|
||||
menuWidget('quiz', 'Menstrual cycle tracker', () {
|
||||
FirebaseAnalytics.instance.logScreenView(
|
||||
screenName: "Menstrual cycle tracker");
|
||||
final isFilled = StorageService().readinitialSetup();
|
||||
if (isFilled) {
|
||||
Get.back();
|
||||
@@ -170,7 +175,7 @@ class _AppDrawerState extends State<AppDrawer> {
|
||||
// 2;
|
||||
// if (homePageController.bottomNavIndex.value ==
|
||||
// 1) {
|
||||
// homePageController.updateBottomNavIndex(0);
|
||||
// homePageController.updateBottomNavIndex(0);
|
||||
// homePageController.updateBottomNavIndex(1);
|
||||
// Get.back();
|
||||
// } else {
|
||||
@@ -185,21 +190,23 @@ class _AppDrawerState extends State<AppDrawer> {
|
||||
// ),
|
||||
// const SizedBox(height: 40),
|
||||
headTitel('External Motivation'),
|
||||
menuWidget(
|
||||
'podcast',
|
||||
'Podcasts',
|
||||
() => Get.to(
|
||||
() => const PodcastMain(),
|
||||
),
|
||||
false),
|
||||
menuWidget('podcast', 'Podcasts', () {
|
||||
FirebaseAnalytics.instance
|
||||
.logScreenView(screenName: "Podcasts");
|
||||
Get.to(
|
||||
() => const PodcastMain(),
|
||||
);
|
||||
}, false),
|
||||
const SizedBox(height: 15),
|
||||
menuWidget(
|
||||
'news_articles',
|
||||
'News & Articles',
|
||||
() => Get.to(
|
||||
() => const BlogMain(),
|
||||
),
|
||||
false),
|
||||
|
||||
menuWidget('news_articles', 'News & Articles', () {
|
||||
FirebaseAnalytics.instance
|
||||
.logScreenView(screenName: "News & Articles");
|
||||
Get.to(
|
||||
() => const BlogMain(),
|
||||
);
|
||||
}, false),
|
||||
|
||||
const SizedBox(height: 15),
|
||||
// menuWidget(
|
||||
// 'instagram',
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'dart:async';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:another_flushbar/flushbar.dart';
|
||||
import 'package:firebase_analytics/firebase_analytics.dart';
|
||||
// import 'package:firebase_dynamic_links/firebase_dynamic_links.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_branch_sdk/flutter_branch_sdk.dart';
|
||||
@@ -279,7 +280,8 @@ class _SvpMain extends State<SvpMain> {
|
||||
}
|
||||
|
||||
List<VideoPlayerController> videoPlayerControllers = [];
|
||||
|
||||
int secondsVideoWatched = 0;
|
||||
Timer? timercounter;
|
||||
@override
|
||||
void initState() {
|
||||
videoPlayerControllers = ShortClipTemp.tempClips
|
||||
@@ -299,6 +301,11 @@ class _SvpMain extends State<SvpMain> {
|
||||
..initialize()
|
||||
..setLooping(true);
|
||||
}
|
||||
//Logging video duration
|
||||
timercounter = Timer.periodic(const Duration(seconds: 1), (timer) {
|
||||
secondsVideoWatched++;
|
||||
});
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@@ -309,6 +316,7 @@ class _SvpMain extends State<SvpMain> {
|
||||
for (final ctrl in videoPlayerControllers) {
|
||||
ctrl.dispose();
|
||||
}
|
||||
timercounter?.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@@ -351,12 +359,6 @@ class _SvpMain extends State<SvpMain> {
|
||||
.add(ShortClipLikesModel(shortClipId: clip.id, isLiked: false));
|
||||
}
|
||||
|
||||
// return VideoPage(
|
||||
// fetchedClips: fetchedClips,
|
||||
// fetchedLikes: myLikes,
|
||||
// index: widget.index,
|
||||
// );
|
||||
|
||||
return SafeArea(
|
||||
child: Theme(
|
||||
data: ThemeData(
|
||||
@@ -375,6 +377,15 @@ class _SvpMain extends State<SvpMain> {
|
||||
onPageChanged: (index) {
|
||||
//on swipe up (NEXT)
|
||||
if (index > prevPgIndex) {
|
||||
int prevVideoDuration = secondsVideoWatched;
|
||||
secondsVideoWatched = 0;
|
||||
print("video ran for $prevVideoDuration");
|
||||
print("video ran for ${fetchedClips[index - 1].title}");
|
||||
FirebaseAnalytics.instance
|
||||
.logEvent(name: "video_views", parameters: {
|
||||
"video_title": fetchedClips[index - 1].title,
|
||||
"video_duration": prevVideoDuration
|
||||
});
|
||||
if (index - 2 >= 0) {
|
||||
videoPlayerControllers[index - 2].dispose();
|
||||
}
|
||||
@@ -419,11 +430,6 @@ class _SvpMain extends State<SvpMain> {
|
||||
|
||||
prevPgIndex = index;
|
||||
},
|
||||
|
||||
// itemBuilder: (context, index) {
|
||||
// return VideoPlayer(videoPlayerControllers[index]);
|
||||
// }
|
||||
|
||||
itemBuilder: (context, index) {
|
||||
ShortClipModel shortClipModel = fetchedClips[index];
|
||||
sortLikes(shortClipModel, fetchedLikes);
|
||||
@@ -432,13 +438,6 @@ class _SvpMain extends State<SvpMain> {
|
||||
return Stack(
|
||||
alignment: AlignmentDirectional.bottomCenter,
|
||||
children: [
|
||||
// SvPlayer(
|
||||
// //podPlayerController: podPlayerController,
|
||||
// pageController: pageController,
|
||||
// videoUrl: shortClipModel.videoUrl,
|
||||
// currentPageIndex: index,
|
||||
// pagesCount: fetchedClips.length,
|
||||
// ),
|
||||
VideoPlayer(videoPlayerControllers[index]),
|
||||
|
||||
//like & share
|
||||
|
||||
@@ -457,6 +457,30 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.1.4"
|
||||
firebase_analytics:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: firebase_analytics
|
||||
sha256: "624f234b0cb27c4d1c983d03489570471d85d5720159512c8e080cb6917a0a2b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.7.0"
|
||||
firebase_analytics_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: firebase_analytics_platform_interface
|
||||
sha256: "7e6cae535f3f2ab19ddb183ed48010f852baa20999a473b764c3db4e73d3fa0b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.8.0"
|
||||
firebase_analytics_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: firebase_analytics_web
|
||||
sha256: ff080e7793ab71f73fb4cb5223922638024144c1deecb3ec71c81e69f64409df
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.5+7"
|
||||
firebase_core:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
||||
@@ -108,6 +108,7 @@ dependencies:
|
||||
animated_horizontal_calendar: ^0.0.3
|
||||
firebase_crashlytics: any
|
||||
firebase_core: ^2.4.1
|
||||
firebase_analytics: any
|
||||
flutter_background: ^1.2.0
|
||||
package_info_plus: any
|
||||
circular_countdown_timer: ^0.2.3
|
||||
|
||||
Reference in New Issue
Block a user