From 945feeadc65edf93951facd27ed7e4c1f8d7a256 Mon Sep 17 00:00:00 2001 From: Sadra <31988724+xsadra@users.noreply.github.com> Date: Sat, 21 Aug 2021 19:26:40 +0200 Subject: [PATCH 01/10] Add a logger (log manager) to the app, refactor app version logs #45 --- .../repositories/version_repository_impl.dart | 19 +++--- lib/core/logs/logger.dart | 63 +++++++++++++++++++ pubspec.yaml | 3 +- 3 files changed, 74 insertions(+), 11 deletions(-) create mode 100644 lib/core/logs/logger.dart diff --git a/lib/clash/data/repositories/version_repository_impl.dart b/lib/clash/data/repositories/version_repository_impl.dart index ace6f84..85ef46a 100644 --- a/lib/clash/data/repositories/version_repository_impl.dart +++ b/lib/clash/data/repositories/version_repository_impl.dart @@ -1,11 +1,10 @@ -import 'dart:developer'; - import 'package:dartz/dartz.dart'; import 'package:meta/meta.dart'; import 'package:package_info_plus/package_info_plus.dart'; import '../../../core/error/exceptions.dart'; import '../../../core/error/failure.dart'; +import '../../../core/logs/logger.dart'; import '../../../core/platform/network_info.dart'; import '../../domain/entities/version.dart'; import '../../domain/repository/version_repository.dart'; @@ -27,8 +26,8 @@ class VersionRepositoryImpl implements VersionRepository { if (await networkInfo.isConnected) { try { final remoteVersion = await remoteDataSource.getVersion(); - log('Get remoteVersion', name: 'VersionRepositoryImpl'); - log(remoteVersion.toString(), name: 'VersionRepositoryImpl'); + logVersion.v('Get remoteVersion', 'VersionRepositoryImpl'); + logVersion.v(remoteVersion.toString(), 'VersionRepositoryImpl'); localDataSource.cacheVersion(remoteVersion); return right(remoteVersion); } on ServerException { @@ -49,14 +48,14 @@ class VersionRepositoryImpl implements VersionRepository { ? await remoteDataSource.getVersion() : await localDataSource.getLastData(); - log('Server Version: ' + serverVersion.current, - name: 'VersionRepositoryImpl'); + logVersion.d( + 'Server Version: ' + serverVersion.current, 'VersionRepositoryImpl'); final platformInfo = await PackageInfo.fromPlatform(); - log('Platform Version: ' + platformInfo.version, - name: 'VersionRepositoryImpl'); - log('Platform buildNumber: ' + platformInfo.buildNumber, - name: 'VersionRepositoryImpl'); + logVersion.d( + 'Platform Version: ' + platformInfo.version, 'VersionRepositoryImpl'); + logVersion.d('Platform buildNumber: ' + platformInfo.buildNumber, + 'VersionRepositoryImpl'); return platformInfo.version == serverVersion.current; } diff --git a/lib/core/logs/logger.dart b/lib/core/logs/logger.dart new file mode 100644 index 0000000..c9b49fd --- /dev/null +++ b/lib/core/logs/logger.dart @@ -0,0 +1,63 @@ +import 'dart:convert'; + +import 'package:logger/logger.dart'; + +var logger = Logger(printer: PrettyPrinter()); + +var logs = Logger(printer: PrettyPrinter(methodCount: 0)); +var logClass = Logger(printer: PrettyPrinter(methodCount: 1)); +var logClassTime = + Logger(printer: PrettyPrinter(methodCount: 1, printTime: true)); + +var logShort = Logger(printer: MyPrinter()); + +var logVersion = Logger(printer: MyPrinter()); + +class MyPrinter extends LogPrinter { + static final levelPrefixes = { + Level.verbose: '[V]', + Level.debug: '[D]', + Level.info: '[I]', + Level.warning: '[W]', + Level.error: '[E]', + Level.wtf: '[WTF]', + }; + + static final levelColors = { + Level.verbose: AnsiColor.fg(AnsiColor.grey(0.5)), + Level.debug: AnsiColor.none(), + Level.info: AnsiColor.fg(12), + Level.warning: AnsiColor.fg(208), + Level.error: AnsiColor.fg(196), + Level.wtf: AnsiColor.fg(199), + }; + + final bool printTime; + final bool colors; + + MyPrinter({this.printTime = false, this.colors = true}); + + @override + List log(LogEvent event) { + var messageStr = _stringifyMessage(event.message); + var errorStr = event.error != null ? '[${event.error}]' : ''; + var timeStr = printTime ? 'TIME: ${DateTime.now().toIso8601String()}' : ''; + return ['${_labelFor(event.level)} $timeStr $errorStr $messageStr']; + } + + String _labelFor(Level level) { + var prefix = levelPrefixes[level]; + var color = levelColors[level]; + + return colors ? color(prefix) : prefix; + } + + String _stringifyMessage(dynamic message) { + if (message is Map || message is Iterable) { + var encoder = JsonEncoder.withIndent(null); + return encoder.convert(message); + } else { + return message.toString(); + } + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 19ab04b..4f5544e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: clash_royale_assistant description: Stats Royale Assistant helps you enjoy Clash Royale more by providing the most accurate statistics possible. homepage: https://app.sadra.at/clash-royale-assistant repository: https://github.com/xsadra/clash-royale-assistant.git -version: 1.0.4+4 +version: 1.1.0+5 environment: sdk: ">=2.7.0 <3.0.0" @@ -30,6 +30,7 @@ dependencies: introduction_screen: ^2.1.0 google_fonts: animated_text_kit: ^4.2.1 + logger: ^1.0.0 dev_dependencies: build_runner: From 12c7325f4c480eebb0d2f3415ac6fbbccda455cf Mon Sep 17 00:00:00 2001 From: Sadra <31988724+xsadra@users.noreply.github.com> Date: Sat, 21 Aug 2021 19:57:43 +0200 Subject: [PATCH 02/10] Add [DeviceOrientation.portraitUp] to main #45 --- lib/main.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/main.dart b/lib/main.dart index 5f2d004..a6552f0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -15,6 +15,7 @@ void main() async { WidgetsFlutterBinding.ensureInitialized(); await injection.init(); SystemChrome.setSystemUIOverlayStyle(_systemUiOverlayStyle()); + SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); runApp(MyApp()); } From 22b3237d073fc057034e94f41c6f5db2be2d5d1d Mon Sep 17 00:00:00 2001 From: Sadra <31988724+xsadra@users.noreply.github.com> Date: Sat, 21 Aug 2021 20:02:20 +0200 Subject: [PATCH 03/10] Lock screen orientation on Portrait - Add [android:screenOrientation="portrait"] to 'AndroidManifest' #45 --- android/app/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 68386b0..b462624 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ android:label="CR Assistant"> Date: Sat, 21 Aug 2021 19:57:43 +0200 Subject: [PATCH 04/10] Add [DeviceOrientation.portraitUp] to main #28 --- lib/main.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/main.dart b/lib/main.dart index 5f2d004..a6552f0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -15,6 +15,7 @@ void main() async { WidgetsFlutterBinding.ensureInitialized(); await injection.init(); SystemChrome.setSystemUIOverlayStyle(_systemUiOverlayStyle()); + SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); runApp(MyApp()); } From 6b5437a01af9514f0e29abf59a09dadb8fd2919a Mon Sep 17 00:00:00 2001 From: Sadra <31988724+xsadra@users.noreply.github.com> Date: Sat, 21 Aug 2021 20:02:20 +0200 Subject: [PATCH 05/10] Lock screen orientation on Portrait - Add [android:screenOrientation="portrait"] to 'AndroidManifest' #28 --- android/app/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 68386b0..b462624 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ android:label="CR Assistant"> Date: Sun, 22 Aug 2021 15:56:37 +0200 Subject: [PATCH 06/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f5a30d..1c24b32 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# clash_royale_assistant +# clash royale assistant Clash Royale Assistant helps you enjoy Clash Royale more by providing the most accurate statistics possible. From f5bcfd9803a29113f17617e5c60f2e93a315a453 Mon Sep 17 00:00:00 2001 From: Sadra <31988724+xsadra@users.noreply.github.com> Date: Fri, 5 Nov 2021 23:27:19 +0100 Subject: [PATCH 07/10] Update packages #49 --- .../widgets/achievements_card_widget.dart | 4 ++-- pubspec.yaml | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/clash/presentation/widgets/achievements_card_widget.dart b/lib/clash/presentation/widgets/achievements_card_widget.dart index 0bcc556..2493ea7 100644 --- a/lib/clash/presentation/widgets/achievements_card_widget.dart +++ b/lib/clash/presentation/widgets/achievements_card_widget.dart @@ -74,8 +74,8 @@ class AchievementsCard extends StatelessWidget { ? AppColors.achievements.achievedNotCompletedColor : AppColors.achievements.achievedCompletedColor, fontWeight: (achieve.value < achieve.target) - ? AppFonts.achievements.achievedNotCompletedFontWeight - : AppFonts.achievements.achievedCompletedFontWeight, + ? FontWeight.w600 + : FontWeight.bold, ), ), ], diff --git a/pubspec.yaml b/pubspec.yaml index 4f5544e..2a7c90f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,23 +14,23 @@ dependencies: cupertino_icons: ^1.0.3 equatable: ^2.0.3 data_connection_checker: ^0.3.4 - dartz: ^0.9.2 - dio: ^4.0.0 - shared_preferences: ^2.0.6 - flutter_bloc: ^7.1.0 + dartz: ^0.10.0 + dio: ^4.0.1 + shared_preferences: ^2.0.8 + flutter_bloc: ^7.3.2 get_it: ^7.2.0 sailor: ^0.7.1 flutter_staggered_animations: ^1.0.0 convex_bottom_bar: ^3.0.0 - charts_flutter: ^0.11.0 + charts_flutter: ^0.12.0 auto_route: ^0.6.9 timeago: ^3.1.0 url_launcher: - package_info_plus: ^1.0.4 + package_info_plus: ^1.3.0 introduction_screen: ^2.1.0 google_fonts: animated_text_kit: ^4.2.1 - logger: ^1.0.0 + logger: ^1.1.0 dev_dependencies: build_runner: From 723af37519d160e52d64da239ab096ccda1b7eef Mon Sep 17 00:00:00 2001 From: Sadra <31988724+xsadra@users.noreply.github.com> Date: Sat, 6 Nov 2021 00:14:46 +0100 Subject: [PATCH 08/10] Fixed screen overflow #49 --- .../presentation/widgets/card_asset_image_battle_widget.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/clash/presentation/widgets/card_asset_image_battle_widget.dart b/lib/clash/presentation/widgets/card_asset_image_battle_widget.dart index d683dfc..f3e1ca8 100644 --- a/lib/clash/presentation/widgets/card_asset_image_battle_widget.dart +++ b/lib/clash/presentation/widgets/card_asset_image_battle_widget.dart @@ -16,7 +16,7 @@ class CardAssetImageBattle extends StatelessWidget { Widget build(BuildContext context) { double cardWidth = MediaQuery.of(context).size.width / 9.5; return SizedBox( - height: cardWidth + 35, //Fix Step: move to CONSTANTS + height: cardWidth + 36, //Fix Step: move to CONSTANTS width: cardWidth, child: Column( children: [ From 814e2a0943897170eda27cf84ed2c4496a4030d0 Mon Sep 17 00:00:00 2001 From: Sadra <31988724+xsadra@users.noreply.github.com> Date: Sat, 6 Nov 2021 00:15:41 +0100 Subject: [PATCH 09/10] Change the player max level to 14 #49 --- .../presentation/widgets/card_deck_item_widget.dart | 3 ++- lib/clash/presentation/widgets/cards_details_widget.dart | 9 +++++---- lib/clash/presentation/widgets/player_name_widget.dart | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/clash/presentation/widgets/card_deck_item_widget.dart b/lib/clash/presentation/widgets/card_deck_item_widget.dart index 7b26597..1d88b24 100644 --- a/lib/clash/presentation/widgets/card_deck_item_widget.dart +++ b/lib/clash/presentation/widgets/card_deck_item_widget.dart @@ -11,6 +11,7 @@ class CardDeckItem extends StatelessWidget { }) : super(key: key); final Card card; + static const int maxLvl = 14; @override Widget build(BuildContext context) { @@ -42,7 +43,7 @@ class CardDeckItem extends StatelessWidget { width: 56, child: Text( AppTexts.ui.levelSpc + - (card.level + 13 - card.maxLevel).toString(), + (card.level + maxLvl - card.maxLevel).toString(), style: TextStyle( color: Colors.white, fontSize: 14, diff --git a/lib/clash/presentation/widgets/cards_details_widget.dart b/lib/clash/presentation/widgets/cards_details_widget.dart index 14bb4c5..b574fd3 100644 --- a/lib/clash/presentation/widgets/cards_details_widget.dart +++ b/lib/clash/presentation/widgets/cards_details_widget.dart @@ -13,15 +13,16 @@ import 'widgets.dart'; class CardsDetails extends StatelessWidget { const CardsDetails({Key key, this.state}) : super(key: key); final Loaded state; + static const int maxLvl = 14; @override Widget build(BuildContext context) { // Step move all logic to a controller class var _cards = state.player.cards; - _cards.sort((b, a) => - (a.level + 13 - a.maxLevel).compareTo(b.level + 13 - b.maxLevel)); - var _newList = groupBy( - _cards, (card) => (card as Card).level + 13 - (card as Card).maxLevel); + _cards.sort((b, a) => (a.level + maxLvl - a.maxLevel) + .compareTo(b.level + maxLvl - b.maxLevel)); + var _newList = groupBy(_cards, + (card) => (card as Card).level + maxLvl - (card as Card).maxLevel); int currentDeckColumnCount = 4; var _cardsChartData = _newList.keys .map((e) => CardsChartData( diff --git a/lib/clash/presentation/widgets/player_name_widget.dart b/lib/clash/presentation/widgets/player_name_widget.dart index dbaaca7..a455028 100644 --- a/lib/clash/presentation/widgets/player_name_widget.dart +++ b/lib/clash/presentation/widgets/player_name_widget.dart @@ -33,7 +33,7 @@ class PlayerName extends StatelessWidget { ), ], ), - if (player.expLevel == 13) ...[ + if (player.expLevel > 10) ...[ AppStyles.sizedBox.width16, Row( children: [ From 93e2f896f2bc82f5fa137f5eede92bf70fca80f1 Mon Sep 17 00:00:00 2001 From: Sadra <31988724+xsadra@users.noreply.github.com> Date: Mon, 8 Nov 2021 18:55:02 +0100 Subject: [PATCH 10/10] Update version number to 1.2.0+6 --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 2a7c90f..d6ba677 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: clash_royale_assistant description: Stats Royale Assistant helps you enjoy Clash Royale more by providing the most accurate statistics possible. homepage: https://app.sadra.at/clash-royale-assistant repository: https://github.com/xsadra/clash-royale-assistant.git -version: 1.1.0+5 +version: 1.2.0+6 environment: sdk: ">=2.7.0 <3.0.0"