Skip to content

Commit

Permalink
[Application] Load the official map + daily checkin page with the cur…
Browse files Browse the repository at this point in the history
…rent selected language
  • Loading branch information
Wolfteam committed Jul 10, 2021
1 parent 7ee9742 commit 95edf9c
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 4 deletions.
40 changes: 37 additions & 3 deletions lib/application/url_page/url_page_bloc.dart
Expand Up @@ -2,6 +2,7 @@ import 'dart:async';

import 'package:bloc/bloc.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/network_service.dart';
import 'package:genshindb/domain/services/settings_service.dart';
Expand All @@ -15,7 +16,7 @@ class UrlPageBloc extends Bloc<UrlPageEvent, UrlPageState> {
final wishSimulatorUrl = 'https://gi-wish-simulator.uzairashraf.dev';
final officialMapUrl = 'https://webstatic-sea.mihoyo.com/app/ys-map-sea/index.html';
final unofficialMapUrl = 'https://genshin-impact-map.appsample.com';
final dailyCheckInUrl = 'https://webstatic-sea.mihoyo.com/ys/event/signin-sea/index.html?act_id=e202102251931481&lang=en-us';
final dailyCheckInUrl = 'https://webstatic-sea.mihoyo.com/ys/event/signin-sea/index.html?act_id=e202102251931481';

final NetworkService _networkService;
final TelemetryService _telemetryService;
Expand All @@ -33,19 +34,52 @@ class UrlPageBloc extends Bloc<UrlPageEvent, UrlPageState> {
Stream<UrlPageState> mapEventToState(UrlPageEvent event) async* {
final s = await event.map(
init: (e) async {
final finalMapUrl = _settingsService.useOfficialMap ? officialMapUrl : unofficialMapUrl;
final finalMapUrl = _settingsService.useOfficialMap ? _getMapUrl() : unofficialMapUrl;
final isInternetAvailable = await _networkService.isInternetAvailable();
await _telemetryService.trackUrlOpened(e.loadMap, e.loadWishSimulator, e.loadDailyCheckIn, isInternetAvailable);
return UrlPageState.loaded(
hasInternetConnection: isInternetAvailable,
mapUrl: finalMapUrl,
wishSimulatorUrl: wishSimulatorUrl,
dailyCheckInUrl: dailyCheckInUrl,
dailyCheckInUrl: _getDailyCheckInUrl(),
userAgent: _deviceInfoService.userAgent!,
);
},
);

yield s;
}

String _getDailyCheckInUrl() {
final lang = _getPageLanguage();
return '$dailyCheckInUrl&lang=$lang';
}

String _getMapUrl() {
final lang = _getPageLanguage();
return '$officialMapUrl?lang=$lang';
}

String _getPageLanguage() {
switch (_settingsService.language) {
case AppLanguageType.spanish:
return 'es-es';
case AppLanguageType.french:
return 'fr-fr';
case AppLanguageType.russian:
return 'ru-ru';
case AppLanguageType.simplifiedChinese:
return 'zh-cn';
case AppLanguageType.portuguese:
return 'pt-pt';
case AppLanguageType.japanese:
return 'ja-jp';
case AppLanguageType.vietnamese:
return 'vi-vn';
case AppLanguageType.indonesian:
return 'id-id';
default:
return 'en-us';
}
}
}
2 changes: 1 addition & 1 deletion lib/domain/models/settings/app_settings.dart
Expand Up @@ -8,7 +8,7 @@ part 'app_settings.freezed.dart';
part 'app_settings.g.dart';

@freezed
abstract class AppSettings implements _$AppSettings {
class AppSettings with _$AppSettings {
factory AppSettings({
required AppThemeType appTheme,
required bool useDarkAmoled,
Expand Down

0 comments on commit 95edf9c

Please sign in to comment.