Skip to content

Commit

Permalink
Track the app version
Browse files Browse the repository at this point in the history
  • Loading branch information
Wolfteam committed Mar 30, 2021
1 parent e7ada6b commit 365afc7
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 6 deletions.
8 changes: 4 additions & 4 deletions lib/application/settings/settings_bloc.dart
Expand Up @@ -4,8 +4,8 @@ import 'package:bloc/bloc.dart';
import 'package:flutter/foundation.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:genshindb/domain/enums/enums.dart';
import 'package:genshindb/domain/services/device_info_service.dart';
import 'package:genshindb/domain/services/settings_service.dart';
import 'package:package_info/package_info.dart';

import '../bloc.dart';

Expand All @@ -15,10 +15,11 @@ part 'settings_state.dart';

class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
final SettingsService _settingsService;
final DeviceInfoService _deviceInfoService;
final MainBloc _mainBloc;
final HomeBloc _homeBloc;

SettingsBloc(this._settingsService, this._mainBloc, this._homeBloc) : super(const SettingsState.loading());
SettingsBloc(this._settingsService, this._deviceInfoService, this._mainBloc, this._homeBloc) : super(const SettingsState.loading());

_LoadedState get currentState => state as _LoadedState;

Expand All @@ -30,12 +31,11 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
init: (_) async {
await _settingsService.init();
final settings = _settingsService.appSettings;
final packageInfo = await PackageInfo.fromPlatform();
return SettingsState.loaded(
currentTheme: settings.appTheme,
currentAccentColor: settings.accentColor,
currentLanguage: settings.appLanguage,
appVersion: packageInfo.version,
appVersion: _deviceInfoService.version,
showCharacterDetails: settings.showCharacterDetails,
showWeaponDetails: settings.showWeaponDetails,
serverResetTime: settings.serverResetTime,
Expand Down
2 changes: 2 additions & 0 deletions lib/domain/services/device_info_service.dart
@@ -1,5 +1,7 @@
abstract class DeviceInfoService {
Map<String, String> get deviceInfo;

String get version;

Future<void> init();
}
11 changes: 10 additions & 1 deletion lib/infrastructure/device_info_service.dart
@@ -1,23 +1,32 @@
import 'package:device_info/device_info.dart';
import 'package:genshindb/domain/services/device_info_service.dart';
import 'package:package_info/package_info.dart';

class DeviceInfoServiceImpl implements DeviceInfoService {
Map<String, String> _deviceInfo;
String _version;

@override
Map<String, String> get deviceInfo => _deviceInfo;

@override
String get version => _version;

@override
Future<void> init() async {
try {
final deviceInfo = DeviceInfoPlugin();
final androidInfo = await deviceInfo.androidInfo;
final packageInfo = await PackageInfo.fromPlatform();
_version = packageInfo.version;
_deviceInfo = {
'Model': androidInfo.model,
'OsVersion': '${androidInfo.version.sdkInt}',
'AppVersion': '${packageInfo.version}_${packageInfo.buildNumber}'
};
} catch (ex) {
_deviceInfo = {'Model': 'N/A', 'OsVersion': 'N/A'};
_deviceInfo = {'Model': 'N/A', 'OsVersion': 'N/A', 'AppVersion': 'N/A'};
_version = 'N/A';
}
}
}
4 changes: 3 additions & 1 deletion lib/main.dart
Expand Up @@ -5,6 +5,7 @@ import 'package:flutter_user_agent/flutter_user_agent.dart';
import 'application/bloc.dart';
import 'domain/services/calculator_service.dart';
import 'domain/services/data_service.dart';
import 'domain/services/device_info_service.dart';
import 'domain/services/genshin_service.dart';
import 'domain/services/locale_service.dart';
import 'domain/services/logging_service.dart';
Expand Down Expand Up @@ -129,7 +130,8 @@ class MyApp extends StatelessWidget {
BlocProvider(
create: (ctx) {
final settingsService = getIt<SettingsService>();
return SettingsBloc(settingsService, ctx.read<MainBloc>(), ctx.read<HomeBloc>());
final deviceInfoService = getIt<DeviceInfoService>();
return SettingsBloc(settingsService, deviceInfoService, ctx.read<MainBloc>(), ctx.read<HomeBloc>());
},
),
BlocProvider(
Expand Down

0 comments on commit 365afc7

Please sign in to comment.