This commit is contained in:
Dmitry 2024-07-03 23:56:13 +03:00
parent 6e635400cd
commit d3e9f49c09
61 changed files with 34 additions and 227 deletions

View file

@ -1,19 +1,13 @@
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:file_picker/file_picker.dart';
import 'package:mnemo_cards/admin/admin_api.dart';
import 'package:mnemo_cards/domain/router/app_router.dart';
import 'package:mnemo_cards/features/packs/images_holder.dart';
import 'package:mnemo_cards/widgets/game_card_widget.dart';
import 'package:mnemo_cards/widgets/header.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import '../di/locator.dart';
import '../main.dart';
import '../widgets/image_fade.dart';

View file

@ -1,19 +1,14 @@
import 'dart:convert';
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_colorpicker/flutter_colorpicker.dart';
import 'package:mnemo_cards/admin/admin_api.dart';
import 'package:mnemo_cards/di/injector.dart';
import 'package:mnemo_cards/managers/repository/api.dart';
import 'package:mnemo_cards/managers/repository/dio_provider.dart';
import 'package:mnemo_cards/utils/iterable_helper.dart';
import 'package:mnemo_cards/utils/string_helper.dart';
import 'package:mnemo_cards/widgets/header.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:file_picker/file_picker.dart';
import '../utils/string_helper.dart';
import '../main.dart';
import '../widgets/image_fade.dart';

View file

@ -1,24 +1,13 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/services.dart';
import 'package:mnemo_cards/admin/admin_api.dart';
import 'package:mnemo_cards/domain/router/app_router.dart';
import 'package:mnemo_cards/features/packs/images_holder.dart';
import 'package:mnemo_cards/utils/iterable_helper.dart';
import 'package:mnemo_cards/widgets/game_card_widget.dart';
import 'package:mnemo_cards/widgets/header.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import '../di/locator.dart';
import '../main.dart';
import '../widgets/image_fade.dart';
class EditUser {
UserDto userDto;

View file

@ -1,10 +1,6 @@
import 'dart:convert';
import 'dart:math';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/admin/add_card.dart';
import 'package:mnemo_cards/admin/add_user.dart';
import 'package:mnemo_cards/admin/admin_api.dart';
import 'package:mnemo_cards/di/injector.dart';

View file

@ -1,15 +1,12 @@
import 'dart:developer';
import 'package:get_it/get_it.dart';
import 'package:mnemo_cards/admin/admin_api.dart';
import 'package:mnemo_cards/di/locator.dart';
import 'package:mnemo_cards/features/packs/pack_cache_manager.dart';
import 'package:mnemo_cards/features/packs/packs_api.dart';
import 'package:mnemo_cards/flags.dart';
import 'package:mnemo_cards/managers/favorite_cards.dart';
import 'package:mnemo_cards/managers/repository/dio_provider.dart';
import 'package:mnemo_cards/managers/repository/http_repository.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import '../features/packs/images_holder.dart';
import '../features/packs/pack_updater.dart';

View file

@ -1,7 +1,6 @@
import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:mnemo_cards/managers/user_manager.dart';
import 'package:mnemo_cards/utils/iterable_helper.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
class Analytics {

View file

@ -2,7 +2,6 @@ import 'dart:async';
import 'package:rxdart/rxdart.dart';
import 'flip_card.dart';
///This controller used to call Fliping
class FlipCardController {

View file

@ -2,9 +2,7 @@ import 'dart:collection';
import 'dart:math' as math;
import 'package:flutter/widgets.dart';
import 'package:yandex_mobileads/mobile_ads.dart';
import '../../yandex_ads/yandex_ads.dart';
import 'allowed_swipe_direction.dart';
import 'card_animation.dart';
import 'card_swiper_controller.dart';

View file

@ -1,4 +1,3 @@
import 'dart:developer';
import 'package:flutter/cupertino.dart';
import 'package:mnemo_cards/di/locator.dart';

View file

@ -2,7 +2,6 @@ import 'dart:async';
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'dart:typed_data';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';

View file

@ -5,9 +5,7 @@ import 'package:mnemo_cards/di/locator.dart';
import 'package:mnemo_cards/features/packs/pack_cache_manager.dart';
import 'package:mnemo_cards/features/packs/packs_api.dart';
import 'package:mnemo_cards/features/packs/preview_pack_holder.dart';
import 'package:mnemo_cards/main.dart';
import 'package:mnemo_cards/managers/repository/repository.dart';
import 'package:mnemo_cards/utils/iterable_helper.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:rxdart/rxdart.dart';

View file

@ -5,7 +5,6 @@ import 'dart:developer';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:rxdart/rxdart.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../main.dart';

View file

@ -4,7 +4,6 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:in_app_purchase/in_app_purchase.dart';
import 'package:mnemo_cards/utils/iterable_helper.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:webview_flutter/webview_flutter.dart';
import '../../di/injector.dart';

View file

@ -1,5 +1,3 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:story/story.dart';

View file

@ -1,5 +1,4 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mnemo_cards/features/stories/stories_page.dart';

View file

@ -1,15 +1,8 @@
import 'dart:math';
import 'package:auto_route/auto_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/flags.dart';
import 'package:rxdart/rxdart.dart';
import '../../theme/themes.dart';
class ProgressWidget extends StatefulWidget {
final Color color;

View file

@ -1,4 +1,3 @@
import 'dart:math';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:copy_with_extension/copy_with_extension.dart';

View file

@ -1,4 +1,3 @@
import 'dart:math';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:copy_with_extension/copy_with_extension.dart';

View file

@ -1,6 +1,6 @@
import 'dart:async';
import 'dart:developer';
import 'package:collection/collection.dart';
import 'package:collection/collection.dart' show ListEquality;
import 'package:flutter/widgets.dart';
import 'package:mnemo_cards/features/tests/test_state_holder.dart';

View file

@ -1,8 +1,5 @@
import 'dart:developer';
import 'dart:math' as math;
import 'package:auto_route/auto_route.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/main.dart';
@ -64,7 +61,7 @@ class _TestPageState extends State<TestPage> {
false) {
AudioPlayer.playAudio((question as dynamic).audio);
}
} catch (e, s) {}
} catch (e) {}
}
}

View file

@ -1,16 +1,11 @@
import 'dart:async';
import 'dart:math';
import 'package:auto_route/auto_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/features/tests/progress_widget.dart';
import 'package:rxdart/rxdart.dart';
import '../../di/locator.dart';
import '../../theme/themes.dart';
class TestProgressWidget extends StatefulWidget {
@override

View file

@ -1,9 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_tts/flutter_tts.dart';
import 'package:mnemo_cards/managers/audio_player.dart';
import '../../../main.dart';
import '../../../widgets/game_card_widget.dart';
import 'test_image.dart';

View file

@ -193,7 +193,8 @@ class InputButtonsTestWidget extends StatelessWidget {
? isCorrect
? Colors.green.withOpacity(0.5)
: Colors.red.withOpacity(0.5)
: Theme.of(context).scaffoldBackgroundColor,
: Theme.of(context)
.scaffoldBackgroundColor,
),
),
),

View file

@ -2,15 +2,12 @@ import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_tts/flutter_tts.dart';
import 'package:mnemo_cards/features/tests/test_manager.dart';
import 'package:mnemo_cards/features/tests/test_widgets/common_test_question_widget.dart';
import 'package:mnemo_cards/features/tests/test_widgets/test_image.dart';
import 'package:mnemo_cards/main.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import '../../../di/locator.dart';
import '../../../widgets/game_card_widget.dart';
import '../question_states/simple_test_state.dart';
import 'test_button.dart';

View file

@ -1,6 +1,4 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mnemo_cards/theme/themes.dart';
import 'test_image.dart';

View file

@ -1,13 +1,10 @@
import 'dart:convert';
import 'dart:developer';
import 'dart:math' as m;
import 'dart:typed_data';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:mnemo_cards/features/packs/images_holder.dart';
import 'package:mnemo_cards/theme/themes.dart';
import '../../../di/locator.dart';

View file

@ -1,6 +1,6 @@
import 'package:mnemo_cards/main.dart';
const ADMIN_BUILD = true;
const ADMIN_BUILD = false;
bool get SHOW_ADMIN =>
ADMIN_BUILD && (globalSharedPreferences.getBool('show_admin') ?? false);

View file

@ -2,7 +2,6 @@ import 'dart:async';
import 'dart:developer';
import 'dart:io';
import 'package:auto_route/annotations.dart';
import 'package:auto_route/auto_route.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:firebase_core/firebase_core.dart';
@ -15,7 +14,6 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:jailbreak_root_detection/jailbreak_root_detection.dart';
import 'package:mnemo_cards/di/locator.dart';
import 'package:mnemo_cards/domain/router/app_router.dart';
import 'package:mnemo_cards/managers/repository/certificates.dart';
import 'package:mnemo_cards/managers/repository/firebase_config_repository.dart';
import 'package:mnemo_cards/features/packs/pack_manager.dart';
import 'package:mnemo_cards/theme/themes.dart';

View file

@ -1,9 +1,6 @@
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:mnemo_cards/flags.dart';
import '../../main.dart';
import 'firebase_config_repository.dart';
mixin Api {
String get path =>

View file

@ -1,18 +1,12 @@
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'package:auto_route/auto_route.dart';
import 'package:dio/dio.dart';
import 'package:dio/io.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:mnemo_cards/domain/router/app_router.gr.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:http_certificate_pinning/http_certificate_pinning.dart';
import 'package:flutter/foundation.dart';
import 'package:collection/collection.dart';
import '../../di/locator.dart';

View file

@ -1,4 +1,3 @@
import 'dart:convert';
import 'package:cloud_firestore/cloud_firestore.dart';

View file

@ -58,6 +58,7 @@ class HttpRepository extends Repository with Api {
}
}
@override
void setAuthToken(String? authToken) {
_dio.interceptors.add(
InterceptorsWrapper(onRequest: (options, handler) {

View file

@ -1,7 +1,6 @@
import 'package:mnemo_cards/managers/user_manager.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import '../../features/purchase/in_app_purchase.dart';
abstract class Repository {
Future<UserDto> get user;
@ -15,11 +14,14 @@ abstract class Repository {
Future<(UserDto, String)> createOrGetUser(
String externalId,
ExternalIdType idType,
String name,
String? name,
);
Future<UserDto?> getUser();
void setAuthToken(String? authToken);
Future<void> updateUserData(UserDataDto data);
Future<void> updateUserSettings(UserSettingsDto settings);

View file

@ -1,10 +1,8 @@
import 'dart:async';
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'package:auto_route/auto_route.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:mnemo_cards/di/locator.dart';
import 'package:mnemo_cards/main.dart';
@ -12,10 +10,8 @@ import 'package:mnemo_cards/managers/repository/http_repository.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:rxdart/rxdart.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:device_info_plus/device_info_plus.dart';
import '../domain/router/app_router.dart';
import '../domain/router/app_router.gr.dart';
import '../features/analytics/analytics.dart';
import 'user_state_holder.dart';
@ -27,7 +23,9 @@ class UserManager {
'email',
// 'https://www.googleapis.com/auth/contacts.readonly',
],
// clientId: '01767851968-dvbvmte4m90dkqitp013s4nd5c0df1n8.apps.googleusercontent.com',
clientId: kIsWeb
? '701767851968-bud97rud1d9qtqju96addn31nhm0oofu.apps.googleusercontent.com'
: null,
// "701767851968-bud97rud1d9qtqju96addn31nhm0oofu.apps.googleusercontent.com",
);
@ -41,11 +39,15 @@ class UserManager {
int? get userId => userStateHolder.user?.id;
Future<void> login() async {
if (await _googleSignIn.isSignedIn()) {
await _googleSignIn.signOut();
try {
if (await _googleSignIn.isSignedIn()) {
await _googleSignIn.signOut();
}
final account = await _googleSignIn.signIn();
await Future.delayed(Duration(milliseconds: 300));
} catch (e, s) {
log('Error in login', error: e, stackTrace: s);
}
final account = await _googleSignIn.signIn();
await Future.delayed(Duration(milliseconds: 300));
}
Future<void> logout() async {

View file

@ -1,14 +1,11 @@
import 'package:auto_route/annotations.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/di/locator.dart';
import 'package:mnemo_cards/flags.dart';
import 'package:mnemo_cards/widgets/header.dart';
import 'package:url_launcher/url_launcher.dart';
import '../main.dart';
import '../theme/themes.dart';
import '../widgets/shared_pref_button.dart';

View file

@ -1,7 +1,5 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:mnemo_cards/di/locator.dart';
import '../widgets/packs_menu_widget.dart';

View file

@ -1,7 +1,6 @@
import 'dart:io';
import 'package:auto_route/auto_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/domain/router/app_router.dart';
@ -9,7 +8,6 @@ import 'package:mnemo_cards/domain/router/app_router.gr.dart';
import 'package:mnemo_cards/flags.dart';
import 'package:mnemo_cards/main.dart';
import 'package:mnemo_cards/widgets/header.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:url_launcher/url_launcher.dart';
@ -22,10 +20,6 @@ import '../widgets/big_back_button.dart';
import '../widgets/enter_promo_code_widget.dart';
import '../widgets/shared_pref_button.dart';
import '../widgets/simple_tile.dart';
import '../widgets/slider.dart';
import '../widgets/switch_button.dart';
import '../widgets/switch_tile.dart';
import '../widgets/text_button.dart';
import '../widgets/user_statistics.dart';
@RoutePage()

View file

@ -1,30 +1,22 @@
import 'dart:io';
import 'package:auto_route/auto_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/domain/router/app_router.dart';
import 'package:mnemo_cards/flags.dart';
import 'package:mnemo_cards/widgets/header.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:url_launcher/url_launcher.dart';
import '../admin/all_cards.dart';
import '../admin/all_users.dart';
import '../di/locator.dart';
import '../features/analytics/analytics.dart';
import '../theme/themes.dart';
import '../widgets/big_back_button.dart';
import '../widgets/enter_promo_code_widget.dart';
import '../widgets/shared_pref_button.dart';
import '../widgets/simple_tile.dart';
import '../widgets/slider.dart';
import '../widgets/switch_button.dart';
import '../widgets/switch_tile.dart';
import '../widgets/text_button.dart';
import '../widgets/user_statistics.dart';
@RoutePage()
class SettingsPage extends StatelessWidget {

View file

@ -53,7 +53,7 @@ final theme2 = ThemeData(
secondaryContainer: Colors.grey,
primary: MaterialColor(0xFF000000, color),
surface: MaterialColor(0xFFFFFFFF, colorWhite),
surfaceVariant: MaterialColor(0xFFFFFFFF, colorWhite),
surfaceContainerHighest: MaterialColor(0xFFFFFFFF, colorWhite),
onSurface: Colors.black,
),

View file

@ -1,61 +0,0 @@
import 'dart:math';
import 'package:flutter/material.dart';
extension IterableHelper<T> on Iterable<T> {
T? firstWhereOrNull(bool Function(T) test) => where(test).firstOrNull;
}
extension NullableIterableHelper<T> on Iterable<T?> {
Iterable<T> whereNotNull() => where((element) => element != null).cast();
}
extension ListHelper<T> on List<T> {
// List<T> shuffle([int? seed]) {
// Random r = Random(seed);
// var items = [...this];
// for (var i = length - 1; i > 0; i--) {
// var n = r.nextInt(i + 1);
//
// var temp = items[i];
// items[i] = items[n];
// items[n] = temp;
// }
//
// return items;
// }
void move(int from, int to) {
RangeError.checkValidIndex(from, this, "from", length);
RangeError.checkValidIndex(to, this, "to", length);
var element = this[from];
if (from < to) {
this.setRange(from, to, this, from + 1);
} else {
this.setRange(to + 1, from + 1, this, to);
}
this[to] = element;
}
void sortInOrder<P>(List<P> order, P valueGetter(T v)) => sort((p, n) {
final pVal = valueGetter(p);
final nVal = valueGetter(n);
final pIndex = order.indexOf(pVal);
final nIndex = order.indexOf(nVal);
if (pIndex == -1) {
return nIndex == -1
? () {
if (pVal is num) {
return pVal.compareTo(nVal as num);
} else if (pVal is String) {
return pVal.compareTo(nVal as String);
}
return pVal.toString().compareTo(nVal.toString());
}.call()
: 1;
} else if (nIndex == -1) {
return -1;
}
return pIndex.compareTo(nIndex);
});
}

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'dart:ui';
extension StringHelper on String {
String get capitalize =>
@ -19,6 +20,6 @@ extension StringHelper on String {
return '0x$this'.asColor;
}
}
return Colors.white;
return Color(0xffffffff);
}
}

View file

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/main.dart';

View file

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:mnemo_cards/utils/string_helper.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import '../../features/card_swiper/src/card_swiper_controller.dart';

View file

@ -1,6 +1,5 @@
import 'dart:math';
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import 'package:mnemo_cards/features/packs/images_holder.dart';
import 'package:mnemo_cards/utils/color_helper.dart';
@ -11,7 +10,6 @@ import '../../features/card_flipper/flip_card_controllers.dart';
import '../../features/card_swiper/src/allowed_swipe_direction.dart';
import '../../features/card_swiper/src/card_swiper.dart';
import '../../features/card_swiper/src/card_swiper_controller.dart';
import '../../features/card_swiper/src/enums.dart';
import '../../main.dart';
import '../game_card_widget.dart';

View file

@ -9,7 +9,6 @@ import 'package:mnemo_cards/managers/audio_player.dart';
import 'package:mnemo_cards/theme/themes.dart';
import 'package:mnemo_cards/utils/color_helper.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:rxdart/rxdart.dart';
import '../../di/locator.dart';
import '../../features/card_flipper/flip_card_controllers.dart';
import '../../features/card_swiper/flutter_card_swiper.dart';

View file

@ -1,16 +1,12 @@
import 'dart:math';
import 'package:collection/collection.dart';
import 'package:auto_route/auto_route.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/main.dart';
import 'package:mnemo_cards/utils/iterable_helper.dart';
import 'package:mnemo_cards/widgets/fade_in_widget.dart';
import 'package:mnemo_cards/widgets/feedback_builder.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:reorderables/reorderables.dart';
import 'package:yandex_mobileads/mobile_ads.dart';
import '../../domain/router/app_router.gr.dart';
import '../../features/analytics/analytics.dart';
@ -289,7 +285,7 @@ class _Button extends StatelessWidget {
final String asset;
final VoidCallback onTap;
_Button(this.asset, this.onTap, {super.key});
_Button(this.asset, this.onTap);
@override
Widget build(BuildContext context) {
@ -368,7 +364,6 @@ class _TestButton extends StatelessWidget {
this.time,
this.timeSubtitle,
this.stats,
super.key,
});
@override

View file

@ -1,14 +1,10 @@
import 'dart:convert';
import 'dart:developer';
import 'package:auto_route/auto_route.dart';
import 'package:mnemo_cards/utils/string_helper.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import '../../di/injector.dart';
import '../../features/analytics/analytics.dart';
import '../../features/packs/pack_holder.dart';
import '../../main.dart';
import '../items/builder.dart';
@ -16,7 +12,6 @@ import '../../di/locator.dart';
import '../../domain/router/app_router.dart';
import '../../theme/themes.dart';
import 'card_pack_header.dart';
import 'loading_pack.dart';
class BuyPack extends StatelessWidget {
final CardPackBuyDto dto;

View file

@ -1,7 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/utils/color_helper.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:mnemo_cards/utils/string_helper.dart';
import '../header.dart';

View file

@ -1,4 +1,3 @@
import 'dart:async';
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
@ -6,11 +5,9 @@ import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/features/packs/images_holder.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:collection/collection.dart';
import 'package:reorderables/reorderables.dart';
import 'package:rxdart/rxdart.dart';
import '../../di/locator.dart';
import '../../utils/string_helper.dart';
import '../../domain/router/app_router.gr.dart';
import '../../main.dart';

View file

@ -2,9 +2,7 @@ import 'dart:async';
import 'dart:math';
import 'package:flutter/widgets.dart';
import 'package:mnemo_cards/features/packs/images_holder.dart';
import 'package:mnemo_cards/main.dart';
import 'package:mnemo_cards/utils/iterable_helper.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:rxdart/rxdart.dart';

View file

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/di/locator.dart';

View file

@ -1,16 +1,12 @@
import 'dart:math';
import 'dart:ui';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/di/locator.dart';
import 'package:mnemo_cards/features/yandex_ads/yandex_ads.dart';
import 'package:flutter/painting.dart';
import 'package:mnemo_cards/managers/audio_player.dart';
import 'package:mnemo_cards/utils/color_helper.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:yandex_mobileads/mobile_ads.dart';
import '../features/card_flipper/flip_card.dart';

View file

@ -1,9 +1,7 @@
import 'dart:math';
import 'package:auto_route/auto_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class Header extends StatelessWidget {

View file

@ -1,5 +1,4 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mnemo_cards/utils/string_helper.dart';

View file

@ -2,26 +2,18 @@ import 'dart:convert';
import 'dart:developer';
import 'package:auto_route/auto_route.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/features/packs/pack_manager.dart';
import 'package:mnemo_cards/managers/user_state_holder.dart';
import 'package:mnemo_cards/utils/string_helper.dart';
import 'package:mnemo_cards/widgets/header.dart';
import 'package:mnemo_cards/widgets/shared_pref_button.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
import 'package:shimmer/shimmer.dart';
import '../admin/add_package.dart';
import '../di/locator.dart';
import '../domain/router/app_router.dart';
import '../domain/router/app_router.gr.dart';
import '../flags.dart';
import '../managers/repository/repository.dart';
import '../theme/themes.dart';
import 'package:collection/collection.dart';
class PacksMenuWidget extends StatefulWidget {

View file

@ -1,8 +1,6 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:mnemo_cards/theme/themes.dart';
import 'package:mnemo_cards/widgets/switch_button.dart';
class SimpleTile extends StatelessWidget {
final Widget? trail;

View file

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mnemo_cards/theme/themes.dart';

View file

@ -1,6 +1,5 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mnemo_cards/theme/themes.dart';
import 'package:mnemo_cards/widgets/switch_button.dart';
class SwitchTile extends StatelessWidget {

View file

@ -218,7 +218,7 @@ packages:
source: hosted
version: "4.10.0"
collection:
dependency: transitive
dependency: "direct main"
description:
name: collection
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
@ -234,7 +234,7 @@ packages:
source: hosted
version: "3.1.1"
copy_with_extension:
dependency: transitive
dependency: "direct main"
description:
name: copy_with_extension
sha256: fbcf890b0c34aedf0894f91a11a579994b61b4e04080204656b582708b5b1125
@ -569,7 +569,7 @@ packages:
source: hosted
version: "2.5.2"
freezed_annotation:
dependency: transitive
dependency: "direct main"
description:
name: freezed_annotation
sha256: c3fd9336eb55a38cc1bbd79ab17573113a8deccd0ecbbf926cca3c62803b5c2d

View file

@ -62,6 +62,9 @@ dependencies:
# requests_inspector: ^4.0.3
collection: any
freezed_annotation: any
copy_with_extension: any
dev_dependencies:
flutter_test:
sdk: flutter