mirror of
https://github.com/lichess-org/mobile.git
synced 2026-05-26 13:50:52 +00:00
Enable always_use_package_imports rule
This commit is contained in:
@@ -33,7 +33,7 @@ linter:
|
||||
rules:
|
||||
require_trailing_commas: false
|
||||
prefer_single_quotes: true
|
||||
always_use_package_imports: false
|
||||
always_use_package_imports: true
|
||||
avoid_redundant_argument_values: false
|
||||
sort_pub_dependencies: true
|
||||
sort_unnamed_constructors_first: false
|
||||
|
||||
+1
-2
@@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_native_splash/flutter_native_splash.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:lichess_mobile/src/app.dart';
|
||||
import 'package:lichess_mobile/src/binding.dart';
|
||||
import 'package:lichess_mobile/src/init.dart';
|
||||
import 'package:lichess_mobile/src/intl.dart';
|
||||
@@ -9,8 +10,6 @@ import 'package:lichess_mobile/src/log.dart';
|
||||
import 'package:lichess_mobile/src/model/common/service/sound_service.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'src/app.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
final widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
|
||||
final lichessBinding = AppLichessBinding.ensureInitialized();
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:lichess_mobile/src/model/account/account_repository.dart';
|
||||
import 'package:lichess_mobile/src/model/auth/auth_session.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'account_repository.dart';
|
||||
|
||||
part 'account_preferences.g.dart';
|
||||
|
||||
typedef AccountPrefState =
|
||||
|
||||
@@ -2,6 +2,8 @@ import 'package:deep_pick/deep_pick.dart';
|
||||
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:lichess_mobile/src/model/account/account_preferences.dart';
|
||||
import 'package:lichess_mobile/src/model/account/ongoing_game.dart';
|
||||
import 'package:lichess_mobile/src/model/auth/auth_session.dart';
|
||||
import 'package:lichess_mobile/src/model/common/chess.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
@@ -13,9 +15,6 @@ import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'account_preferences.dart';
|
||||
import 'ongoing_game.dart';
|
||||
|
||||
part 'account_repository.g.dart';
|
||||
|
||||
@riverpod
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import 'package:lichess_mobile/src/model/auth/auth_repository.dart';
|
||||
import 'package:lichess_mobile/src/model/auth/auth_session.dart';
|
||||
import 'package:lichess_mobile/src/model/notifications/notification_service.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:lichess_mobile/src/network/socket.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'auth_repository.dart';
|
||||
|
||||
part 'auth_controller.g.dart';
|
||||
|
||||
@riverpod
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:lichess_mobile/src/model/auth/session_storage.dart';
|
||||
import 'package:lichess_mobile/src/model/common/preloaded_data.dart';
|
||||
import 'package:lichess_mobile/src/model/user/user.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'session_storage.dart';
|
||||
|
||||
part 'auth_session.freezed.dart';
|
||||
part 'auth_session.g.dart';
|
||||
|
||||
|
||||
@@ -6,11 +6,10 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:lichess_mobile/src/db/database.dart';
|
||||
import 'package:lichess_mobile/src/model/auth/auth_session.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/correspondence/offline_correspondence_game.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
|
||||
import 'offline_correspondence_game.dart';
|
||||
|
||||
part 'correspondence_game_storage.g.dart';
|
||||
|
||||
@Riverpod(keepAlive: true)
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:lichess_mobile/src/model/engine/uci_protocol.dart';
|
||||
import 'package:lichess_mobile/src/model/engine/work.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:stockfish/stockfish.dart';
|
||||
|
||||
import 'uci_protocol.dart';
|
||||
import 'work.dart';
|
||||
|
||||
enum EngineState { initial, loading, idle, computing, error, disposed }
|
||||
|
||||
abstract class Engine {
|
||||
|
||||
@@ -11,14 +11,13 @@ import 'package:lichess_mobile/src/model/common/chess.dart';
|
||||
import 'package:lichess_mobile/src/model/common/eval.dart';
|
||||
import 'package:lichess_mobile/src/model/common/preloaded_data.dart';
|
||||
import 'package:lichess_mobile/src/model/common/uci.dart';
|
||||
import 'package:lichess_mobile/src/model/engine/engine.dart';
|
||||
import 'package:lichess_mobile/src/model/engine/work.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
import 'package:stream_transform/stream_transform.dart';
|
||||
|
||||
import 'engine.dart';
|
||||
import 'work.dart';
|
||||
|
||||
part 'evaluation_service.g.dart';
|
||||
part 'evaluation_service.freezed.dart';
|
||||
part 'evaluation_service.g.dart';
|
||||
|
||||
final maxEngineCores = max(Platform.numberOfProcessors - 1, 1);
|
||||
final defaultEngineCores = min((Platform.numberOfProcessors / 2).ceil(), maxEngineCores);
|
||||
|
||||
@@ -5,10 +5,9 @@ import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:lichess_mobile/src/model/common/chess.dart';
|
||||
import 'package:lichess_mobile/src/model/common/eval.dart';
|
||||
import 'package:lichess_mobile/src/model/engine/work.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
import 'work.dart';
|
||||
|
||||
const minDepth = 6;
|
||||
const maxPlies = 245;
|
||||
|
||||
|
||||
@@ -8,14 +8,13 @@ import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/common/perf.dart';
|
||||
import 'package:lichess_mobile/src/model/common/speed.dart';
|
||||
import 'package:lichess_mobile/src/model/common/time_increment.dart';
|
||||
import 'package:lichess_mobile/src/model/game/game.dart';
|
||||
import 'package:lichess_mobile/src/model/game/game_status.dart';
|
||||
import 'package:lichess_mobile/src/model/game/material_diff.dart';
|
||||
import 'package:lichess_mobile/src/model/game/player.dart';
|
||||
import 'package:lichess_mobile/src/model/user/user.dart';
|
||||
import 'package:lichess_mobile/src/utils/json.dart';
|
||||
|
||||
import 'game.dart';
|
||||
import 'game_status.dart';
|
||||
import 'player.dart';
|
||||
|
||||
part 'archived_game.freezed.dart';
|
||||
part 'archived_game.g.dart';
|
||||
|
||||
|
||||
@@ -12,12 +12,11 @@ import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/common/node.dart';
|
||||
import 'package:lichess_mobile/src/model/common/perf.dart';
|
||||
import 'package:lichess_mobile/src/model/common/speed.dart';
|
||||
import 'package:lichess_mobile/src/model/game/game_status.dart';
|
||||
import 'package:lichess_mobile/src/model/game/material_diff.dart';
|
||||
import 'package:lichess_mobile/src/model/game/player.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
|
||||
import 'game_status.dart';
|
||||
import 'material_diff.dart';
|
||||
import 'player.dart';
|
||||
|
||||
part 'game.freezed.dart';
|
||||
part 'game.g.dart';
|
||||
|
||||
|
||||
@@ -2,12 +2,11 @@ import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/game/archived_game.dart';
|
||||
import 'package:lichess_mobile/src/model/game/game_repository.dart';
|
||||
import 'package:lichess_mobile/src/model/game/game_storage.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'game_repository.dart';
|
||||
|
||||
part 'game_repository_providers.g.dart';
|
||||
|
||||
/// Fetches a game from the local storage if available, otherwise fetches it from the server.
|
||||
|
||||
@@ -4,9 +4,9 @@ import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:lichess_mobile/src/model/common/eval.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
|
||||
import 'game.dart';
|
||||
import 'game_status.dart';
|
||||
import 'player.dart';
|
||||
import 'package:lichess_mobile/src/model/game/game.dart';
|
||||
import 'package:lichess_mobile/src/model/game/game_status.dart';
|
||||
import 'package:lichess_mobile/src/model/game/player.dart';
|
||||
|
||||
part 'over_the_board_game.freezed.dart';
|
||||
part 'over_the_board_game.g.dart';
|
||||
|
||||
@@ -9,14 +9,13 @@ import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/common/perf.dart';
|
||||
import 'package:lichess_mobile/src/model/common/speed.dart';
|
||||
import 'package:lichess_mobile/src/model/game/archived_game.dart';
|
||||
import 'package:lichess_mobile/src/model/game/game.dart';
|
||||
import 'package:lichess_mobile/src/model/game/game_status.dart';
|
||||
import 'package:lichess_mobile/src/model/game/material_diff.dart';
|
||||
import 'package:lichess_mobile/src/model/game/player.dart';
|
||||
import 'package:lichess_mobile/src/model/user/user.dart';
|
||||
import 'package:lichess_mobile/src/utils/json.dart';
|
||||
|
||||
import 'game.dart';
|
||||
import 'game_status.dart';
|
||||
import 'player.dart';
|
||||
|
||||
part 'playable_game.freezed.dart';
|
||||
|
||||
/// A game that can be played or watched.
|
||||
|
||||
@@ -5,12 +5,11 @@ import 'package:http/http.dart' as http;
|
||||
import 'package:lichess_mobile/src/model/common/chess.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/common/perf.dart';
|
||||
import 'package:lichess_mobile/src/model/lobby/correspondence_challenge.dart';
|
||||
import 'package:lichess_mobile/src/model/lobby/game_seek.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'correspondence_challenge.dart';
|
||||
import 'game_seek.dart';
|
||||
|
||||
part 'lobby_repository.g.dart';
|
||||
|
||||
@riverpod
|
||||
|
||||
@@ -6,13 +6,12 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:lichess_mobile/src/db/database.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_angle.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_theme.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
|
||||
import 'puzzle.dart';
|
||||
import 'puzzle_angle.dart';
|
||||
import 'puzzle_theme.dart';
|
||||
|
||||
part 'puzzle_batch_storage.freezed.dart';
|
||||
part 'puzzle_batch_storage.g.dart';
|
||||
|
||||
|
||||
@@ -10,17 +10,16 @@ import 'package:intl/intl.dart';
|
||||
import 'package:lichess_mobile/src/model/common/chess.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/common/perf.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_angle.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_difficulty.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_opening.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_streak.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_theme.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/storm.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:lichess_mobile/src/utils/json.dart';
|
||||
|
||||
import 'puzzle.dart';
|
||||
import 'puzzle_angle.dart';
|
||||
import 'puzzle_difficulty.dart';
|
||||
import 'puzzle_opening.dart';
|
||||
import 'puzzle_streak.dart';
|
||||
import 'puzzle_theme.dart';
|
||||
import 'storm.dart';
|
||||
|
||||
part 'puzzle_repository.freezed.dart';
|
||||
|
||||
class PuzzleRepository {
|
||||
|
||||
@@ -5,19 +5,18 @@ import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_angle.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_batch_storage.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_preferences.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_repository.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_storage.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_theme.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:result_extensions/result_extensions.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'puzzle.dart';
|
||||
import 'puzzle_angle.dart';
|
||||
import 'puzzle_batch_storage.dart';
|
||||
import 'puzzle_preferences.dart';
|
||||
import 'puzzle_repository.dart';
|
||||
import 'puzzle_theme.dart';
|
||||
|
||||
part 'puzzle_service.freezed.dart';
|
||||
part 'puzzle_service.g.dart';
|
||||
|
||||
|
||||
@@ -2,8 +2,7 @@ import 'package:deep_pick/deep_pick.dart';
|
||||
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
|
||||
import 'puzzle.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle.dart';
|
||||
|
||||
part 'storm.freezed.dart';
|
||||
|
||||
|
||||
@@ -11,14 +11,13 @@ import 'package:lichess_mobile/src/model/auth/auth_session.dart';
|
||||
import 'package:lichess_mobile/src/model/common/chess.dart';
|
||||
import 'package:lichess_mobile/src/model/common/service/move_feedback.dart';
|
||||
import 'package:lichess_mobile/src/model/common/service/sound_service.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/puzzle_repository.dart';
|
||||
import 'package:lichess_mobile/src/model/puzzle/storm.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:result_extensions/result_extensions.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'puzzle.dart';
|
||||
import 'puzzle_repository.dart';
|
||||
import 'storm.dart';
|
||||
|
||||
part 'storm_controller.freezed.dart';
|
||||
part 'storm_controller.g.dart';
|
||||
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:lichess_mobile/src/model/relation/relation_repository.dart';
|
||||
import 'package:lichess_mobile/src/model/user/user.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'relation_repository.dart';
|
||||
|
||||
part 'relation_repository_providers.g.dart';
|
||||
|
||||
@riverpod
|
||||
|
||||
@@ -4,16 +4,15 @@ import 'package:dartchess/dartchess.dart';
|
||||
import 'package:deep_pick/deep_pick.dart';
|
||||
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:lichess_mobile/src/model/common/socket.dart';
|
||||
import 'package:lichess_mobile/src/model/tv/featured_player.dart';
|
||||
import 'package:lichess_mobile/src/model/tv/tv_channel.dart';
|
||||
import 'package:lichess_mobile/src/model/tv/tv_game.dart';
|
||||
import 'package:lichess_mobile/src/model/tv/tv_repository.dart';
|
||||
import 'package:lichess_mobile/src/model/tv/tv_socket_events.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:lichess_mobile/src/network/socket.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'featured_player.dart';
|
||||
import 'tv_channel.dart';
|
||||
import 'tv_game.dart';
|
||||
import 'tv_repository.dart';
|
||||
|
||||
part 'live_tv_channels.g.dart';
|
||||
|
||||
typedef LiveTvChannelsState = IMap<TvChannel, TvGameSnapshot>;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import 'package:dartchess/dartchess.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/tv/featured_player.dart';
|
||||
import 'package:lichess_mobile/src/model/tv/tv_channel.dart';
|
||||
import 'package:lichess_mobile/src/model/user/user.dart';
|
||||
|
||||
import 'featured_player.dart';
|
||||
import 'tv_channel.dart';
|
||||
|
||||
part 'tv_game.freezed.dart';
|
||||
|
||||
@freezed
|
||||
|
||||
@@ -3,12 +3,11 @@ import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:lichess_mobile/src/model/common/chess.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/tv/tv_channel.dart';
|
||||
import 'package:lichess_mobile/src/model/tv/tv_game.dart';
|
||||
import 'package:lichess_mobile/src/model/user/user.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
|
||||
import './tv_channel.dart';
|
||||
import './tv_game.dart';
|
||||
|
||||
typedef TvChannels = IMap<TvChannel, TvGame>;
|
||||
|
||||
class TvRepository {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'user.dart';
|
||||
import 'package:lichess_mobile/src/model/user/user.dart';
|
||||
|
||||
part 'leaderboard.freezed.dart';
|
||||
|
||||
|
||||
@@ -3,12 +3,10 @@ import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/common/perf.dart';
|
||||
import 'package:lichess_mobile/src/model/user/profile.dart';
|
||||
import 'package:lichess_mobile/src/utils/json.dart';
|
||||
|
||||
import 'profile.dart';
|
||||
|
||||
part 'user.freezed.dart';
|
||||
|
||||
part 'user.g.dart';
|
||||
|
||||
@Freezed(fromJson: true, toJson: true)
|
||||
|
||||
@@ -4,12 +4,11 @@ import 'package:fast_immutable_collections/fast_immutable_collections.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/common/perf.dart';
|
||||
import 'package:lichess_mobile/src/model/user/leaderboard.dart';
|
||||
import 'package:lichess_mobile/src/model/user/streamer.dart';
|
||||
import 'package:lichess_mobile/src/model/user/user.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:lichess_mobile/src/utils/json.dart';
|
||||
|
||||
import 'streamer.dart';
|
||||
import 'user.dart';
|
||||
|
||||
class UserRepository {
|
||||
UserRepository(this.client);
|
||||
|
||||
|
||||
@@ -3,13 +3,12 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:lichess_mobile/src/model/common/id.dart';
|
||||
import 'package:lichess_mobile/src/model/common/perf.dart';
|
||||
import 'package:lichess_mobile/src/model/user/leaderboard.dart';
|
||||
import 'package:lichess_mobile/src/model/user/streamer.dart';
|
||||
import 'package:lichess_mobile/src/model/user/user.dart';
|
||||
import 'package:lichess_mobile/src/model/user/user_repository.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'streamer.dart';
|
||||
import 'user.dart';
|
||||
import 'user_repository.dart';
|
||||
|
||||
part 'user_repository_providers.g.dart';
|
||||
|
||||
const _kAutoCompleteDebounceTimer = Duration(milliseconds: 300);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import '../widgets/feedback.dart';
|
||||
import 'package:lichess_mobile/src/widgets/feedback.dart';
|
||||
|
||||
extension AsyncValueUI on AsyncValue<Object?> {
|
||||
void showSnackbarOnError(BuildContext context) {
|
||||
|
||||
@@ -10,9 +10,13 @@ import 'package:lichess_mobile/src/model/game/game_share_service.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/utils/share.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/analysis_board.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/analysis_layout.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/analysis_settings.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/analysis_share_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/server_analysis.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/tree_view.dart';
|
||||
import 'package:lichess_mobile/src/view/board_editor/board_editor_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/engine/engine_depth.dart';
|
||||
import 'package:lichess_mobile/src/view/engine/engine_gauge.dart';
|
||||
@@ -26,11 +30,6 @@ import 'package:lichess_mobile/src/widgets/feedback.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform_scaffold.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
import '../../utils/share.dart';
|
||||
import 'analysis_board.dart';
|
||||
import 'analysis_settings.dart';
|
||||
import 'tree_view.dart';
|
||||
|
||||
final _logger = Logger('AnalysisScreen');
|
||||
|
||||
class AnalysisScreen extends ConsumerStatefulWidget {
|
||||
|
||||
@@ -7,12 +7,11 @@ import 'package:lichess_mobile/src/styles/styles.dart';
|
||||
import 'package:lichess_mobile/src/utils/immersive_mode.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/view/clock/clock_settings.dart';
|
||||
import 'package:lichess_mobile/src/view/clock/custom_clock_settings.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_bottom_sheet.dart';
|
||||
import 'package:lichess_mobile/src/widgets/buttons.dart';
|
||||
import 'package:lichess_mobile/src/widgets/clock.dart';
|
||||
|
||||
import 'custom_clock_settings.dart';
|
||||
|
||||
class ClockToolScreen extends StatelessWidget {
|
||||
const ClockToolScreen({super.key});
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/analysis_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/game/archived_game_screen_providers.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_common_widgets.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_player.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_result_dialog.dart';
|
||||
@@ -24,8 +25,6 @@ import 'package:lichess_mobile/src/widgets/buttons.dart';
|
||||
import 'package:lichess_mobile/src/widgets/clock.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform_scaffold.dart';
|
||||
|
||||
import 'archived_game_screen_providers.dart';
|
||||
|
||||
/// Screen for viewing an archived game.
|
||||
class ArchivedGameScreen extends ConsumerWidget {
|
||||
const ArchivedGameScreen({
|
||||
|
||||
@@ -20,6 +20,11 @@ import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/analysis_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/game/correspondence_clock_widget.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_common_widgets.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_loading_board.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_player.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_result_dialog.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_screen_providers.dart';
|
||||
import 'package:lichess_mobile/src/view/game/message_screen.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_action_sheet.dart';
|
||||
import 'package:lichess_mobile/src/widgets/board_table.dart';
|
||||
@@ -31,12 +36,6 @@ import 'package:lichess_mobile/src/widgets/platform_alert_dialog.dart';
|
||||
import 'package:lichess_mobile/src/widgets/user_full_name.dart';
|
||||
import 'package:lichess_mobile/src/widgets/yes_no_dialog.dart';
|
||||
|
||||
import 'game_common_widgets.dart';
|
||||
import 'game_loading_board.dart';
|
||||
import 'game_player.dart';
|
||||
import 'game_result_dialog.dart';
|
||||
import 'game_screen_providers.dart';
|
||||
|
||||
/// Game body for the [GameScreen].
|
||||
///
|
||||
/// This widget is responsible for displaying the board, the clocks, the players,
|
||||
|
||||
@@ -13,6 +13,9 @@ import 'package:lichess_mobile/src/model/lobby/game_seek.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/share.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_screen_providers.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_settings.dart';
|
||||
import 'package:lichess_mobile/src/view/game/ping_rating.dart';
|
||||
import 'package:lichess_mobile/src/view/settings/toggle_sound_button.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_action_sheet.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_bottom_sheet.dart';
|
||||
@@ -20,10 +23,6 @@ import 'package:lichess_mobile/src/widgets/buttons.dart';
|
||||
import 'package:lichess_mobile/src/widgets/feedback.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform_scaffold.dart';
|
||||
|
||||
import 'game_screen_providers.dart';
|
||||
import 'game_settings.dart';
|
||||
import 'ping_rating.dart';
|
||||
|
||||
final _gameTitledateFormat = DateFormat.yMMMd();
|
||||
|
||||
class GameAppBar extends ConsumerWidget {
|
||||
|
||||
@@ -17,11 +17,10 @@ import 'package:lichess_mobile/src/model/game/playable_game.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/analysis_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/game/status_l10n.dart';
|
||||
import 'package:lichess_mobile/src/widgets/buttons.dart';
|
||||
import 'package:lichess_mobile/src/widgets/pgn.dart';
|
||||
|
||||
import 'status_l10n.dart';
|
||||
|
||||
class GameResultDialog extends ConsumerStatefulWidget {
|
||||
const GameResultDialog({required this.id, required this.onNewOpponentCallback, super.key});
|
||||
|
||||
|
||||
@@ -13,13 +13,12 @@ import 'package:lichess_mobile/src/navigation.dart';
|
||||
import 'package:lichess_mobile/src/network/http.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_body.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_common_widgets.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_loading_board.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_screen_providers.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform_scaffold.dart';
|
||||
|
||||
import 'game_body.dart';
|
||||
import 'game_common_widgets.dart';
|
||||
|
||||
/// Screen to play a game, or to show a challenge or to show current user's past games.
|
||||
///
|
||||
/// The screen can be created in three ways:
|
||||
|
||||
@@ -6,11 +6,11 @@ import 'package:lichess_mobile/src/model/game/game_controller.dart';
|
||||
import 'package:lichess_mobile/src/model/game/game_preferences.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_screen_providers.dart';
|
||||
import 'package:lichess_mobile/src/view/settings/board_settings_screen.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_bottom_sheet.dart';
|
||||
import 'package:lichess_mobile/src/widgets/list.dart';
|
||||
import 'package:lichess_mobile/src/widgets/settings.dart';
|
||||
import 'game_screen_providers.dart';
|
||||
|
||||
class GameSettings extends ConsumerWidget {
|
||||
const GameSettings({required this.id, super.key});
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:lichess_mobile/src/styles/styles.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/screen.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/analysis_board.dart';
|
||||
import 'package:lichess_mobile/src/view/opening_explorer/opening_explorer_settings.dart';
|
||||
import 'package:lichess_mobile/src/view/opening_explorer/opening_explorer_view.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_bottom_sheet.dart';
|
||||
import 'package:lichess_mobile/src/widgets/bottom_bar.dart';
|
||||
@@ -20,8 +21,6 @@ import 'package:lichess_mobile/src/widgets/feedback.dart';
|
||||
import 'package:lichess_mobile/src/widgets/move_list.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform.dart';
|
||||
|
||||
import 'opening_explorer_settings.dart';
|
||||
|
||||
const _kTabletBoardRadius = BorderRadius.all(Radius.circular(4.0));
|
||||
|
||||
class OpeningExplorerScreen extends ConsumerWidget {
|
||||
|
||||
@@ -24,6 +24,7 @@ import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/game/game_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/play/challenge_list_item.dart';
|
||||
import 'package:lichess_mobile/src/view/play/common_play_widgets.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_action_sheet.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_choice_picker.dart';
|
||||
import 'package:lichess_mobile/src/widgets/buttons.dart';
|
||||
@@ -33,8 +34,6 @@ import 'package:lichess_mobile/src/widgets/list.dart';
|
||||
import 'package:lichess_mobile/src/widgets/non_linear_slider.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform.dart';
|
||||
|
||||
import 'common_play_widgets.dart';
|
||||
|
||||
enum _ViewMode { create, challenges }
|
||||
|
||||
class CreateCustomGameScreen extends StatelessWidget {
|
||||
|
||||
@@ -2,11 +2,10 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:lichess_mobile/src/styles/styles.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/view/play/create_game_options.dart';
|
||||
import 'package:lichess_mobile/src/view/play/quick_game_button.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform_scaffold.dart';
|
||||
|
||||
import 'create_game_options.dart';
|
||||
|
||||
class PlayScreen extends StatelessWidget {
|
||||
const PlayScreen();
|
||||
|
||||
|
||||
@@ -9,11 +9,10 @@ import 'package:lichess_mobile/src/network/connectivity.dart';
|
||||
import 'package:lichess_mobile/src/styles/styles.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/puzzle_screen.dart';
|
||||
import 'package:lichess_mobile/src/widgets/list.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform_scaffold.dart';
|
||||
|
||||
import 'puzzle_screen.dart';
|
||||
|
||||
final _openingsProvider =
|
||||
FutureProvider.autoDispose<(bool, IMap<String, int>, IList<PuzzleOpeningFamily>?)>((ref) async {
|
||||
final connectivity = await ref.watch(connectivityChangesProvider.future);
|
||||
|
||||
@@ -30,6 +30,8 @@ import 'package:lichess_mobile/src/utils/share.dart';
|
||||
import 'package:lichess_mobile/src/view/account/rating_pref_aware.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/analysis_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/game/archived_game_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/puzzle_feedback_widget.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/puzzle_session_widget.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/puzzle_settings_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/settings/toggle_sound_button.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_action_sheet.dart';
|
||||
@@ -42,9 +44,6 @@ import 'package:lichess_mobile/src/widgets/buttons.dart';
|
||||
import 'package:lichess_mobile/src/widgets/feedback.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform_scaffold.dart';
|
||||
|
||||
import 'puzzle_feedback_widget.dart';
|
||||
import 'puzzle_session_widget.dart';
|
||||
|
||||
class PuzzleScreen extends ConsumerStatefulWidget {
|
||||
/// Creates a new puzzle screen.
|
||||
///
|
||||
|
||||
@@ -24,17 +24,16 @@ import 'package:lichess_mobile/src/utils/screen.dart';
|
||||
import 'package:lichess_mobile/src/utils/string.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/dashboard_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/puzzle_history_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/puzzle_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/puzzle_themes_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/storm_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/streak_screen.dart';
|
||||
import 'package:lichess_mobile/src/widgets/board_preview.dart';
|
||||
import 'package:lichess_mobile/src/widgets/buttons.dart';
|
||||
import 'package:lichess_mobile/src/widgets/feedback.dart';
|
||||
import 'package:lichess_mobile/src/widgets/list.dart';
|
||||
import 'package:lichess_mobile/src/widgets/shimmer.dart';
|
||||
|
||||
import 'puzzle_screen.dart';
|
||||
import 'puzzle_themes_screen.dart';
|
||||
import 'storm_screen.dart';
|
||||
import 'streak_screen.dart';
|
||||
|
||||
const _kNumberOfHistoryItemsOnHandset = 8;
|
||||
const _kNumberOfHistoryItemsOnTablet = 16;
|
||||
|
||||
|
||||
@@ -10,12 +10,11 @@ import 'package:lichess_mobile/src/styles/styles.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/opening_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/puzzle_screen.dart';
|
||||
import 'package:lichess_mobile/src/widgets/list.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform_scaffold.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'puzzle_screen.dart';
|
||||
|
||||
@riverpod
|
||||
final _themesProvider = FutureProvider.autoDispose<
|
||||
(bool, IMap<PuzzleThemeKey, int>, IMap<PuzzleThemeKey, PuzzleThemeData>?, bool)
|
||||
|
||||
@@ -21,6 +21,7 @@ import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/utils/share.dart';
|
||||
import 'package:lichess_mobile/src/view/analysis/analysis_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/puzzle/puzzle_feedback_widget.dart';
|
||||
import 'package:lichess_mobile/src/view/settings/toggle_sound_button.dart';
|
||||
import 'package:lichess_mobile/src/widgets/board_table.dart';
|
||||
import 'package:lichess_mobile/src/widgets/bottom_bar.dart';
|
||||
@@ -30,8 +31,6 @@ import 'package:lichess_mobile/src/widgets/platform_scaffold.dart';
|
||||
import 'package:lichess_mobile/src/widgets/yes_no_dialog.dart';
|
||||
import 'package:result_extensions/result_extensions.dart';
|
||||
|
||||
import 'puzzle_feedback_widget.dart';
|
||||
|
||||
class StreakScreen extends StatelessWidget {
|
||||
const StreakScreen({super.key});
|
||||
|
||||
|
||||
@@ -16,7 +16,10 @@ import 'package:lichess_mobile/src/utils/l10n.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/account/profile_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/settings/account_preferences_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/settings/app_background_mode_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/settings/board_settings_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/settings/sound_settings_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/settings/theme_screen.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_action_sheet.dart';
|
||||
import 'package:lichess_mobile/src/widgets/adaptive_choice_picker.dart';
|
||||
@@ -28,10 +31,6 @@ import 'package:lichess_mobile/src/widgets/settings.dart';
|
||||
import 'package:lichess_mobile/src/widgets/user_full_name.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import 'account_preferences_screen.dart';
|
||||
import 'board_settings_screen.dart';
|
||||
import 'sound_settings_screen.dart';
|
||||
|
||||
class SettingsTabScreen extends ConsumerWidget {
|
||||
const SettingsTabScreen({super.key});
|
||||
|
||||
|
||||
@@ -4,12 +4,11 @@ import 'package:lichess_mobile/src/model/user/user_repository_providers.dart';
|
||||
import 'package:lichess_mobile/src/styles/styles.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/user/leaderboard_screen.dart';
|
||||
import 'package:lichess_mobile/src/widgets/buttons.dart';
|
||||
import 'package:lichess_mobile/src/widgets/list.dart';
|
||||
import 'package:lichess_mobile/src/widgets/shimmer.dart';
|
||||
|
||||
import 'leaderboard_screen.dart';
|
||||
|
||||
/// Create a leaderboard list of the highest rated player for each perf.
|
||||
///
|
||||
/// The title routes to a Leaderboard Screen with the top 10 players for each perf.
|
||||
|
||||
@@ -14,13 +14,12 @@ import 'package:lichess_mobile/src/utils/l10n.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/lichess_assets.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/user/countries.dart';
|
||||
import 'package:lichess_mobile/src/view/user/user_screen.dart';
|
||||
import 'package:lichess_mobile/src/widgets/buttons.dart';
|
||||
import 'package:linkify/linkify.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import 'countries.dart';
|
||||
|
||||
const _userNameStyle = TextStyle(fontSize: 20, fontWeight: FontWeight.w500);
|
||||
|
||||
class UserProfileWidget extends ConsumerWidget {
|
||||
|
||||
@@ -11,17 +11,16 @@ import 'package:lichess_mobile/src/styles/styles.dart';
|
||||
import 'package:lichess_mobile/src/utils/l10n_context.dart';
|
||||
import 'package:lichess_mobile/src/utils/navigation.dart';
|
||||
import 'package:lichess_mobile/src/view/play/create_challenge_screen.dart';
|
||||
import 'package:lichess_mobile/src/view/user/perf_cards.dart';
|
||||
import 'package:lichess_mobile/src/view/user/recent_games.dart';
|
||||
import 'package:lichess_mobile/src/view/user/user_activity.dart';
|
||||
import 'package:lichess_mobile/src/view/user/user_profile.dart';
|
||||
import 'package:lichess_mobile/src/widgets/feedback.dart';
|
||||
import 'package:lichess_mobile/src/widgets/list.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform_scaffold.dart';
|
||||
import 'package:lichess_mobile/src/widgets/user_full_name.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import 'perf_cards.dart';
|
||||
import 'user_activity.dart';
|
||||
import 'user_profile.dart';
|
||||
|
||||
class UserScreen extends ConsumerStatefulWidget {
|
||||
const UserScreen({required this.user, super.key});
|
||||
|
||||
|
||||
@@ -4,8 +4,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:lichess_mobile/src/model/account/account_preferences.dart';
|
||||
import 'package:lichess_mobile/src/styles/styles.dart';
|
||||
import 'package:lichess_mobile/src/utils/rate_limit.dart';
|
||||
|
||||
import 'platform.dart';
|
||||
import 'package:lichess_mobile/src/widgets/platform.dart';
|
||||
|
||||
const _scrollAnimationDuration = Duration(milliseconds: 200);
|
||||
const _moveListOpacity = 0.8;
|
||||
|
||||
Reference in New Issue
Block a user