Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
a211d89
Add online bots screen
veloce Jun 7, 2024
ccc293e
Tweak bots screen
veloce Jun 7, 2024
61d6033
WIP on challenge model
veloce Jun 7, 2024
70e438c
Linkify bot profile
veloce Jun 10, 2024
99269f2
More work on challenge model
veloce Jun 10, 2024
ff8993f
Add more challenge actions
veloce Jun 10, 2024
4f7a080
More wip on challenges
veloce Jun 11, 2024
927ad17
Try out the matrix
veloce Jun 12, 2024
e78bf2f
Add user relation actions
veloce Jun 13, 2024
f9bb29f
More wip on challenges
veloce Jun 13, 2024
135eb55
Fix challenge model
veloce Jun 13, 2024
875d38d
More wip on challenges
veloce Jun 13, 2024
f24669a
Fix user report redirect
veloce Jun 14, 2024
56d73aa
Add 2 more lichess icons
veloce Jun 14, 2024
052d64d
More work on challenges
veloce Jun 14, 2024
2b017bd
WIP on challenges: ping the websocket
veloce Jun 18, 2024
6f6239f
Show matrix on home
veloce Jun 20, 2024
931678c
Challenge socket version is non nullable
veloce Jun 20, 2024
6b2f53a
Add perf cards to home
veloce Jun 24, 2024
e99ba72
Fix challenge json
veloce Jun 24, 2024
caab5aa
Show challenge decline reason
veloce Jun 24, 2024
84317d6
Fix warnings
veloce Jun 24, 2024
20919f9
Make Challenge.fromServerJson public
veloce Jun 25, 2024
6d5cdbd
Make it possible to challenge bots
veloce Jun 25, 2024
4a0ecd0
Implement selectable home widgets
veloce Jun 25, 2024
c1bbad5
Tweaks
veloce Jun 25, 2024
9400cc6
Fix challenge repo tests
veloce Jun 25, 2024
b448610
Make hello an editable widget
veloce Jun 26, 2024
9eaa9a6
Inform when the user has not allowed challenges
veloce Jun 26, 2024
1a5da71
Add editable widgets to tablets
veloce Jun 26, 2024
621b78d
Add custom time and increment selection
veloce Jun 26, 2024
2c56222
Restore plus icon
veloce Jun 26, 2024
6dfa1e3
Remove unused import
veloce Jun 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified assets/fonts/LichessIcons.ttf
Binary file not shown.
Binary file added assets/images/logo-transp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 28 additions & 0 deletions fluttericon.json
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,34 @@
"search": [
"radio-tower_lichess"
]
},
{
"uid": "4ecdeca3c31e24d22785b79592e666d4",
"css": "crossed-swords",
"code": 59423,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M548.8 468.8L736.3 671.9Q787.1 632.8 804.7 591.8H865.2Q847.7 673.8 787.1 718.8L890.6 841.8Q931.6 843.8 933.6 886.7 931.6 912.1 910.2 925.8 890.6 937.5 861.3 937.5 812.5 935.5 810.5 882.8L705.1 769.5Q636.7 806.6 576.2 812.5L548.8 767.6Q615.2 759.8 662.1 724.6L498 529.3 335.9 724.6Q382.8 759.8 447.3 767.6L421.9 812.5Q359.4 806.6 291 769.5L187.5 882.8Q183.6 931.6 144.5 937.5 113.3 937.5 91.8 927.7 68.4 918 64.5 894.5 64.5 843.8 107.4 841.8L210.9 718.8Q146.5 669.9 132.8 591.8H193.4Q210.9 632.8 261.7 671.9L447.3 468.8 85.9 37.1 64.5-62.5 498 412.1 933.6-62.5 912.1 37.1Z",
"width": 1020
},
"search": [
"crossed-swords-small_lichess"
]
},
{
"uid": "c71b8cea8f0e581d3031dd77eebbb981",
"css": "book_lichess",
"code": 59424,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M951.2 205.1Q972.7 236.3 960.9 275.4L806.6 781.3Q796.9 816.4 763.7 841.8 730.5 865.2 695.3 865.2H181.6Q138.7 865.2 97.7 835.9 58.6 804.7 43 763.7 29.3 726.6 41 691.4 41 685.5 43 677.7 44.9 668 44.9 656.3 44.9 648.4 43 644.5V636.7L41 632.8 46.9 621.1Q50.8 613.3 54.7 609.4 56.6 607.4 59.6 602.5T64.5 595.7Q76.2 580.1 89.8 544.9 101.6 517.6 107.4 494.1V476.6Q105.5 466.8 107.4 460.9 107.4 457 115.2 445.3 125 435.5 125 431.6 136.7 416 148.4 380.9 162.1 343.8 162.1 330.1V312.5Q158.2 300.8 162.1 296.9 166 289.1 173.8 281.3 185.5 269.5 185.5 267.6 195.3 255.9 210.9 220.7 224.6 183.6 224.6 166V152.3Q222.7 146.5 222.7 138.7 222.7 132.8 228.5 127L232.4 121.1 238.3 115.2Q246.1 105.5 248 103.5 253.9 89.8 255.9 85.9 257.8 84 260.7 77.1T265.6 66.4Q269.5 54.7 273.4 46.9 279.3 35.2 285.2 29.3 291 21.5 298.8 15.6 308.6 9.8 320.3 9.8 335.9 9.8 345.7 11.7V13.7Q359.4 9.8 373 9.8H798.8Q841.8 9.8 861.3 41 884.8 70.3 873 113.3L718.8 619.1Q697.3 689.5 679.7 703.1 660.2 722.7 607.4 722.7H123Q107.4 722.7 101.6 732.4T101.6 755.9Q113.3 794.9 181.6 794.9H697.3Q709 794.9 728.5 785.2 742.2 777.3 748 763.7L914.1 212.9Q918 203.1 918 179.7 941.4 189.5 951.2 205.1ZM357.4 205.1Q355.5 212.9 357.4 218.8 361.3 222.7 369.1 222.7H709Q710.9 222.7 722.7 218.8 730.5 210.9 732.4 205.1L744.1 169.9Q744.1 160.2 742.2 156.3 738.3 152.3 730.5 152.3H392.6Q388.7 152.3 377 156.3 369.1 164.1 369.1 169.9ZM310.5 347.7Q308.6 355.5 310.5 361.3 314.5 365.2 322.3 365.2H662.1Q671.9 365.2 675.8 361.3 681.6 357.4 685.5 347.7L697.3 312.5Q701.2 306.6 695.3 300.8 691.4 294.9 685.5 294.9H345.7Q337.9 294.9 332 300.8 328.1 302.7 322.3 312.5Z",
"width": 1020
},
"search": [
"book_lichess"
]
}
]
}
68 changes: 68 additions & 0 deletions lib/l10n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,74 @@
},
"contactContact": "Contact",
"contactContactLichess": "Contact Lichess",
"challengeChallengesX": "Challenges: {param1}",
"@challengeChallengesX": {
"placeholders": {
"param1": {
"type": "String"
}
}
},
"challengeChallengeToPlay": "Challenge to a game",
"challengeChallengeDeclined": "Challenge declined.",
"challengeChallengeAccepted": "Challenge accepted!",
"challengeChallengeCanceled": "Challenge cancelled.",
"challengeRegisterToSendChallenges": "Please register to send challenges to this user.",
"challengeYouCannotChallengeX": "You cannot challenge {param}.",
"@challengeYouCannotChallengeX": {
"placeholders": {
"param": {
"type": "String"
}
}
},
"challengeXDoesNotAcceptChallenges": "{param} does not accept challenges.",
"@challengeXDoesNotAcceptChallenges": {
"placeholders": {
"param": {
"type": "String"
}
}
},
"challengeYourXRatingIsTooFarFromY": "Your {param1} rating is too far from {param2}.",
"@challengeYourXRatingIsTooFarFromY": {
"placeholders": {
"param1": {
"type": "String"
},
"param2": {
"type": "String"
}
}
},
"challengeCannotChallengeDueToProvisionalXRating": "Cannot challenge due to provisional {param} rating.",
"@challengeCannotChallengeDueToProvisionalXRating": {
"placeholders": {
"param": {
"type": "String"
}
}
},
"challengeXOnlyAcceptsChallengesFromFriends": "{param} only accepts challenges from friends.",
"@challengeXOnlyAcceptsChallengesFromFriends": {
"placeholders": {
"param": {
"type": "String"
}
}
},
"challengeDeclineGeneric": "I'm not accepting challenges at the moment.",
"challengeDeclineLater": "This is not the right time for me, please ask again later.",
"challengeDeclineTooFast": "This time control is too fast for me, please challenge again with a slower game.",
"challengeDeclineTooSlow": "This time control is too slow for me, please challenge again with a faster game.",
"challengeDeclineTimeControl": "I'm not accepting challenges with this time control.",
"challengeDeclineRated": "Please send me a rated challenge instead.",
"challengeDeclineCasual": "Please send me a casual challenge instead.",
"challengeDeclineStandard": "I'm not accepting variant challenges right now.",
"challengeDeclineVariant": "I'm not willing to play this variant right now.",
"challengeDeclineNoBot": "I'm not accepting challenges from bots.",
"challengeDeclineOnlyBot": "I'm only accepting challenges from bots.",
"challengeInviteLichessUser": "Or invite a Lichess user:",
"playWithAFriend": "Play with a friend",
"playWithTheMachine": "Play with the computer",
"toInviteSomeoneToPlayGiveThisUrl": "To invite someone to play, give this URL",
Expand Down
138 changes: 138 additions & 0 deletions lib/l10n/l10n.dart
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,144 @@ abstract class AppLocalizations {
/// **'Contact Lichess'**
String get contactContactLichess;

/// No description provided for @challengeChallengesX.
///
/// In en, this message translates to:
/// **'Challenges: {param1}'**
String challengeChallengesX(String param1);

/// No description provided for @challengeChallengeToPlay.
///
/// In en, this message translates to:
/// **'Challenge to a game'**
String get challengeChallengeToPlay;

/// No description provided for @challengeChallengeDeclined.
///
/// In en, this message translates to:
/// **'Challenge declined.'**
String get challengeChallengeDeclined;

/// No description provided for @challengeChallengeAccepted.
///
/// In en, this message translates to:
/// **'Challenge accepted!'**
String get challengeChallengeAccepted;

/// No description provided for @challengeChallengeCanceled.
///
/// In en, this message translates to:
/// **'Challenge cancelled.'**
String get challengeChallengeCanceled;

/// No description provided for @challengeRegisterToSendChallenges.
///
/// In en, this message translates to:
/// **'Please register to send challenges to this user.'**
String get challengeRegisterToSendChallenges;

/// No description provided for @challengeYouCannotChallengeX.
///
/// In en, this message translates to:
/// **'You cannot challenge {param}.'**
String challengeYouCannotChallengeX(String param);

/// No description provided for @challengeXDoesNotAcceptChallenges.
///
/// In en, this message translates to:
/// **'{param} does not accept challenges.'**
String challengeXDoesNotAcceptChallenges(String param);

/// No description provided for @challengeYourXRatingIsTooFarFromY.
///
/// In en, this message translates to:
/// **'Your {param1} rating is too far from {param2}.'**
String challengeYourXRatingIsTooFarFromY(String param1, String param2);

/// No description provided for @challengeCannotChallengeDueToProvisionalXRating.
///
/// In en, this message translates to:
/// **'Cannot challenge due to provisional {param} rating.'**
String challengeCannotChallengeDueToProvisionalXRating(String param);

/// No description provided for @challengeXOnlyAcceptsChallengesFromFriends.
///
/// In en, this message translates to:
/// **'{param} only accepts challenges from friends.'**
String challengeXOnlyAcceptsChallengesFromFriends(String param);

/// No description provided for @challengeDeclineGeneric.
///
/// In en, this message translates to:
/// **'I\'m not accepting challenges at the moment.'**
String get challengeDeclineGeneric;

/// No description provided for @challengeDeclineLater.
///
/// In en, this message translates to:
/// **'This is not the right time for me, please ask again later.'**
String get challengeDeclineLater;

/// No description provided for @challengeDeclineTooFast.
///
/// In en, this message translates to:
/// **'This time control is too fast for me, please challenge again with a slower game.'**
String get challengeDeclineTooFast;

/// No description provided for @challengeDeclineTooSlow.
///
/// In en, this message translates to:
/// **'This time control is too slow for me, please challenge again with a faster game.'**
String get challengeDeclineTooSlow;

/// No description provided for @challengeDeclineTimeControl.
///
/// In en, this message translates to:
/// **'I\'m not accepting challenges with this time control.'**
String get challengeDeclineTimeControl;

/// No description provided for @challengeDeclineRated.
///
/// In en, this message translates to:
/// **'Please send me a rated challenge instead.'**
String get challengeDeclineRated;

/// No description provided for @challengeDeclineCasual.
///
/// In en, this message translates to:
/// **'Please send me a casual challenge instead.'**
String get challengeDeclineCasual;

/// No description provided for @challengeDeclineStandard.
///
/// In en, this message translates to:
/// **'I\'m not accepting variant challenges right now.'**
String get challengeDeclineStandard;

/// No description provided for @challengeDeclineVariant.
///
/// In en, this message translates to:
/// **'I\'m not willing to play this variant right now.'**
String get challengeDeclineVariant;

/// No description provided for @challengeDeclineNoBot.
///
/// In en, this message translates to:
/// **'I\'m not accepting challenges from bots.'**
String get challengeDeclineNoBot;

/// No description provided for @challengeDeclineOnlyBot.
///
/// In en, this message translates to:
/// **'I\'m only accepting challenges from bots.'**
String get challengeDeclineOnlyBot;

/// No description provided for @challengeInviteLichessUser.
///
/// In en, this message translates to:
/// **'Or invite a Lichess user:'**
String get challengeInviteLichessUser;

/// No description provided for @playWithAFriend.
///
/// In en, this message translates to:
Expand Down
81 changes: 81 additions & 0 deletions lib/l10n/l10n_af.dart
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,87 @@ class AppLocalizationsAf extends AppLocalizations {
@override
String get contactContactLichess => 'Kontak Lichess';

@override
String challengeChallengesX(String param1) {
return 'Uitdagings: $param1';
}

@override
String get challengeChallengeToPlay => 'Daag uit tot \'n spel';

@override
String get challengeChallengeDeclined => 'Uitdaging afgewys.';

@override
String get challengeChallengeAccepted => 'Uitdaging aanvaar!';

@override
String get challengeChallengeCanceled => 'Uitdaging gekanselleer.';

@override
String get challengeRegisterToSendChallenges => 'Registreer om uitdagings te stuur.';

@override
String challengeYouCannotChallengeX(String param) {
return 'Jy kan nie $param uitdaag nie.';
}

@override
String challengeXDoesNotAcceptChallenges(String param) {
return '$param aanvaar nie uitdagings nie.';
}

@override
String challengeYourXRatingIsTooFarFromY(String param1, String param2) {
return 'Jou $param1 gradering is te ver van $param2.';
}

@override
String challengeCannotChallengeDueToProvisionalXRating(String param) {
return 'Kan nie uitdaag nie weens voorlopige $param gradering.';
}

@override
String challengeXOnlyAcceptsChallengesFromFriends(String param) {
return '$param aanvaar net uitdagings van vriende.';
}

@override
String get challengeDeclineGeneric => 'Ek aanvaar nie uitdagings op die oomblik nie.';

@override
String get challengeDeclineLater => 'Dit is \'n ongeleë tyd, vra asseblief weer later.';

@override
String get challengeDeclineTooFast => 'Die tydskontrole is te vinnig vir my, daag my weer uit met \'n stadiger tydskontrole.';

@override
String get challengeDeclineTooSlow => 'Die tydskontrole is te stadig vir my, daag my weer uit met \'n vinniger tydskontrole.';

@override
String get challengeDeclineTimeControl => 'Ek aanvaar nie uitdagings met hierdie tydskontrole nie.';

@override
String get challengeDeclineRated => 'Stuur eerder vir my \'n gegradeerde uitdaging asseblief.';

@override
String get challengeDeclineCasual => 'Stuur eerder vir my \'n vriendskaplike uitdaging asseblief.';

@override
String get challengeDeclineStandard => 'Ek aanvaar nie variant-uitdagings op die oomblik nie.';

@override
String get challengeDeclineVariant => 'Ek is nie bereid om hierdie variant op die oomblik te speel nie.';

@override
String get challengeDeclineNoBot => 'Ek aanvaar nie uitdagings deur bots nie.';

@override
String get challengeDeclineOnlyBot => 'Ek aanvaar slegs uitdagings deur bots.';

@override
String get challengeInviteLichessUser => 'Of nooi \'n Lichess-gebruiker uit:';

@override
String get playWithAFriend => 'Speel teen \'n vriend';

Expand Down
Loading