Skip to content

Commit

Permalink
Track some usefull events
Browse files Browse the repository at this point in the history
  • Loading branch information
Wolfteam committed Dec 31, 2020
1 parent a6263cf commit 76aa026
Show file tree
Hide file tree
Showing 14 changed files with 87 additions and 77 deletions.
2 changes: 1 addition & 1 deletion assets/i18n/en.json
Expand Up @@ -3714,7 +3714,7 @@
"abilities": [
{
"name": "Normal Attack",
"description": " Performs up to 6 consecutive spear strikes.",
"description": "Performs up to 6 consecutive spear strikes.",
"descriptions": []
},
{
Expand Down
6 changes: 4 additions & 2 deletions lib/bloc/artifact_details/artifact_details_bloc.dart
Expand Up @@ -6,6 +6,7 @@ import 'package:freezed_annotation/freezed_annotation.dart';
import '../../common/app_constants.dart';
import '../../common/assets.dart';
import '../../services/genshing_service.dart';
import '../../telemetry.dart';

part 'artifact_details_bloc.freezed.dart';
part 'artifact_details_event.dart';
Expand All @@ -22,8 +23,9 @@ class ArtifactDetailsBloc extends Bloc<ArtifactDetailsEvent, ArtifactDetailsStat
) async* {
yield const ArtifactDetailsState.loading();

final s = event.map(
loadArtifact: (e) {
final s = await event.map(
loadArtifact: (e) async {
await trackArtifactLoaded(e.name);
final artifact = _genshinService.getArtifact(e.name);
final translation = _genshinService.getArtifactTranslation(e.name);
var image = artifact.image.split('.png').first;
Expand Down
9 changes: 6 additions & 3 deletions lib/bloc/character/character_bloc.dart
Expand Up @@ -8,6 +8,7 @@ import '../../common/enums/element_type.dart';
import '../../common/enums/weapon_type.dart';
import '../../models/models.dart';
import '../../services/genshing_service.dart';
import '../../telemetry.dart';

part 'character_bloc.freezed.dart';
part 'character_event.dart';
Expand All @@ -23,13 +24,15 @@ class CharacterBloc extends Bloc<CharacterEvent, CharacterState> {
) async* {
yield const CharacterState.loading();

final s = event.when(
loadFromName: (name) {
final s = await event.when(
loadFromName: (name) async {
await trackCharacterLoaded(name);
final char = _genshinService.getCharacter(name);
final translation = _genshinService.getCharacterTranslation(name);
return _buildInitialState(char, translation);
},
loadFromImg: (img) {
loadFromImg: (img) async {
await trackCharacterLoaded(img, loadedFromName: false);
final char = _genshinService.getCharacterByImg(img);
final translation = _genshinService.getCharacterTranslation(char.name);
return _buildInitialState(char, translation);
Expand Down
2 changes: 2 additions & 0 deletions lib/bloc/materials/materials_bloc.dart
Expand Up @@ -5,6 +5,7 @@ import 'package:freezed_annotation/freezed_annotation.dart';

import '../../models/models.dart';
import '../../services/genshing_service.dart';
import '../../telemetry.dart';

part 'materials_bloc.freezed.dart';
part 'materials_event.dart';
Expand All @@ -18,6 +19,7 @@ class MaterialsBloc extends Bloc<MaterialsEvent, MaterialsState> {
Stream<MaterialsState> mapEventToState(
MaterialsEvent event,
) async* {
await trackAscentionMaterialsOpened();
final s = event.when(
init: () {
final days = [
Expand Down
6 changes: 4 additions & 2 deletions lib/bloc/url_page/url_page_bloc.dart
Expand Up @@ -4,6 +4,7 @@ import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';

import '../../services/network_service.dart';
import '../../telemetry.dart';

part 'url_page_bloc.freezed.dart';
part 'url_page_event.dart';
Expand All @@ -20,9 +21,10 @@ class UrlPageBloc extends Bloc<UrlPageEvent, UrlPageState> {
Stream<UrlPageState> mapEventToState(
UrlPageEvent event,
) async* {
final s = await event.when(
init: () async {
final s = await event.map(
init: (e) async {
final isInternetAvailable = await _networkService.isInternetAvailable();
await trackUrlOpened(e.loadMap, e.loadWishSimulator, isInternetAvailable);
return UrlPageState.loaded(
hasInternetConnection: isInternetAvailable,
mapUrl: mapUrl,
Expand Down
5 changes: 4 additions & 1 deletion lib/bloc/url_page/url_page_event.dart
Expand Up @@ -2,5 +2,8 @@ part of 'url_page_bloc.dart';

@freezed
abstract class UrlPageEvent with _$UrlPageEvent {
const factory UrlPageEvent.init() = _Init;
const factory UrlPageEvent.init({
@required bool loadMap,
@required bool loadWishSimulator,
}) = _Init;
}
9 changes: 6 additions & 3 deletions lib/bloc/weapon/weapon_bloc.dart
Expand Up @@ -8,6 +8,7 @@ import '../../common/enums/stat_type.dart';
import '../../common/enums/weapon_type.dart';
import '../../models/models.dart';
import '../../services/genshing_service.dart';
import '../../telemetry.dart';

part 'weapon_bloc.freezed.dart';
part 'weapon_event.dart';
Expand All @@ -22,13 +23,15 @@ class WeaponBloc extends Bloc<WeaponEvent, WeaponState> {
WeaponEvent event,
) async* {
yield const WeaponState.loading();
final s = event.when(
loadFromImg: (img) {
final s = await event.when(
loadFromImg: (img) async {
await trackWeaponLoaded(img, loadedFromName: false);
final weapon = _genshinService.getWeaponByImg(img);
final translation = _genshinService.getWeaponTranslation(weapon.name);
return _buildInitialState(weapon, translation);
},
loadFromName: (name) {
loadFromName: (name) async {
await trackWeaponLoaded(name);
final weapon = _genshinService.getWeapon(name);
final translation = _genshinService.getWeaponTranslation(name);
return _buildInitialState(weapon, translation);
Expand Down
1 change: 0 additions & 1 deletion lib/main.dart
Expand Up @@ -15,7 +15,6 @@ import 'ui/pages/main_tab_page.dart';
import 'ui/pages/splash_page.dart';

Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await initTelemetry();
initInjection();
runApp(MyApp());
Expand Down
3 changes: 3 additions & 0 deletions lib/services/logging_service.dart
Expand Up @@ -4,6 +4,7 @@ import 'package:log_4_dart_2/log_4_dart_2.dart';
import 'package:sprintf/sprintf.dart';

import '../common/extensions/string_extensions.dart';
import '../telemetry.dart';

abstract class LoggingService {
void info(Type type, String msg, [List<Object> args]);
Expand Down Expand Up @@ -68,6 +69,7 @@ class LoggingServiceImpl implements LoggingService {
'msg': _formatEx(msg, ex),
'trace': trace?.toString() ?? 'No trace available',
};
trackEventAsync('Error - ${DateTime.now()}', map);
}

void _trackWarning(String tag, String msg, [dynamic ex, StackTrace trace]) {
Expand All @@ -76,5 +78,6 @@ class LoggingServiceImpl implements LoggingService {
'msg': _formatEx(msg, ex),
'trace': trace?.toString() ?? 'No trace available',
};
trackEventAsync('Warning - ${DateTime.now()}', map);
}
}
55 changes: 52 additions & 3 deletions lib/telemetry.dart
@@ -1,7 +1,56 @@
import 'package:flutter_appcenter/flutter_appcenter.dart';

import 'flutter_appcenter_bundle.dart';
import 'secrets.dart';

//Only call this function from the main.dart
Future<void> initTelemetry() async {
await FlutterAppCenter.init(appSecretAndroid: Secrets.appCenterKey, tokenAndroid: 'N/A');
await AppCenter.startAsync(appSecretAndroid: Secrets.appCenterKey, appSecretIOS: '');
}

Future<void> trackEventAsync(String name, [Map<String, String> properties]) {
return AppCenter.trackEventAsync(name, properties);
}

Future<void> trackCharacterLoaded(
String value, {
bool loadedFromName = true,
}) async {
if (loadedFromName) {
await trackEventAsync('Character-FromName', {'Name': value});
} else {
await trackEventAsync('Character-FromImg', {'Image': value});
}
}

Future<void> trackWeaponLoaded(
String value, {
bool loadedFromName = true,
}) async {
if (loadedFromName) {
await trackEventAsync('Weapon-FromName', {'Name': value});
} else {
await trackEventAsync('Weapon-FromImg', {'Image': value});
}
}

Future<void> trackArtifactLoaded(
String value, {
bool loadedFromName = true,
}) async {
if (loadedFromName) {
await trackEventAsync('Artifact-FromName', {'Name': value});
} else {
await trackEventAsync('Artifact-FromImg', {'Image': value});
}
}

Future<void> trackAscentionMaterialsOpened() async {
await trackEventAsync('AscentionMaterials-Opened');
}

Future<void> trackUrlOpened(bool loadMap, bool loadWishSimulator, bool networkAvailable) async {
await trackEventAsync('Url-Opened', {
'Map': loadMap.toString(),
'WishSimulator': loadWishSimulator.toString(),
'NetworkAvailable': networkAvailable.toString(),
});
}
2 changes: 1 addition & 1 deletion lib/ui/pages/map_page.dart
Expand Up @@ -63,7 +63,7 @@ class _MapPageState extends State<MapPage> {
@override
void didChangeDependencies() {
super.didChangeDependencies();
context.read<UrlPageBloc>().add(const UrlPageEvent.init());
context.read<UrlPageBloc>().add(const UrlPageEvent.init(loadMap: true, loadWishSimulator: false));
}

@override
Expand Down
2 changes: 1 addition & 1 deletion lib/ui/pages/wish_simulator_page.dart
Expand Up @@ -18,7 +18,7 @@ class _WishSimulatorPageState extends State<WishSimulatorPage> {
@override
void didChangeDependencies() {
super.didChangeDependencies();
context.read<UrlPageBloc>().add(const UrlPageEvent.init());
context.read<UrlPageBloc>().add(const UrlPageEvent.init(loadMap: false, loadWishSimulator: true));
}

@override
Expand Down
58 changes: 1 addition & 57 deletions pubspec.lock
Expand Up @@ -22,13 +22,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.0"
android_metadata:
dependency: transitive
description:
name: android_metadata
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2"
ansicolor:
dependency: transitive
description:
Expand Down Expand Up @@ -218,13 +211,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.4"
dio:
dependency: transitive
description:
name: dio
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.10"
dog:
dependency: "direct main"
description:
Expand Down Expand Up @@ -265,13 +251,6 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_appcenter:
dependency: "direct main"
description:
name: flutter_appcenter
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.11"
flutter_bloc:
dependency: "direct main"
description:
Expand Down Expand Up @@ -392,13 +371,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.19"
install_plugin:
dependency: transitive
description:
name: install_plugin
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
intl:
dependency: transitive
description:
Expand Down Expand Up @@ -525,13 +497,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
open_appstore:
dependency: transitive
description:
name: open_appstore
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
package_config:
dependency: transitive
description:
Expand Down Expand Up @@ -595,20 +560,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.2"
permission_handler:
dependency: transitive
description:
name: permission_handler
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.1+1"
permission_handler_platform_interface:
dependency: transitive
description:
name: permission_handler_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
petitparser:
dependency: transitive
description:
Expand Down Expand Up @@ -651,13 +602,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.13"
progress_dialog:
dependency: transitive
description:
name: progress_dialog
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.4"
provider:
dependency: transitive
description:
Expand Down Expand Up @@ -888,7 +832,7 @@ packages:
source: hosted
version: "1.3.0-nullsafety.3"
url_launcher:
dependency: transitive
dependency: "direct main"
description:
name: url_launcher
url: "https://pub.dartlang.org"
Expand Down
4 changes: 2 additions & 2 deletions pubspec.yaml
Expand Up @@ -15,7 +15,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.3+8
version: 1.0.4+9

environment:
sdk: ">=2.10.4 <3.0.0"
Expand All @@ -24,7 +24,6 @@ dependencies:
cupertino_icons: ^1.0.0
data_connection_checker: ^0.3.4
dog: ^1.3.1
flutter_appcenter: ^1.0.11
flutter:
sdk: flutter
flutter_bloc: ^6.1.0
Expand All @@ -48,6 +47,7 @@ dependencies:
sprintf: ^5.0.0
sqlite3_flutter_libs: ^0.2.0
transparent_image: 1.0.0
url_launcher: 5.7.10

dev_dependencies:
build_runner: ^1.10.6
Expand Down

0 comments on commit 76aa026

Please sign in to comment.