-
-
Notifications
You must be signed in to change notification settings - Fork 198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More progress on broadcast feature #944
Conversation
It's minor but not sure tournament is the right word to switch between open and gm specific. |
Very impressive work Julien! 👍 |
c745d92
to
1c111f1
Compare
Yes, I also think it would be better with the players' names and clock/result. |
Yeah, awesome work @julien4215 . I think we can release like that indeed, even without the eval bar. I'll deal with it asap. Right now I'm focusing on releasing the new editor and opening explorer so I think it'll be part of the next release. |
…ound screen to a tab and create overview tab
65c5deb
to
1913546
Compare
I'm focusing right now on the next release but I'll review asap. Can you please fix the test and solve the conflict in the meantime? Thanks! |
I'll fix the tests and the conflict once the PR is fully ready. I have to fix some problems with the clock and the analysis screen. |
In that case I prefer that the PR is a draft. Easier for me to choose PR to review. Thanks! |
So it is ready to review? Awesome. There's just a couple of conflicts to solve and I'll review this. |
Yes it is ready to review. I fixed the conflicts and I modified the code to use the new |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excellent work! I think we're getting close to release this. Only have a couple of comments here.
I'll test this next week, and figure out something about the dropdown menu bug, since I don't really want to patch flutter.
this.enableDrawingShapes = true, | ||
this.shouldReplaceChildOnUserMove = false, | ||
}); | ||
|
||
final AnalysisOptions options; | ||
final double boardSize; | ||
final BorderRadiusGeometry? borderRadius; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand that. Why changing to radius
instead of borderRadius
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you talking only about the name of the variable or the type ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
both
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@@ -287,7 +287,8 @@ class _CountdownClockState extends State<CountdownClockBuilder> { | |||
void didUpdateWidget(CountdownClockBuilder oldClock) { | |||
super.didUpdateWidget(oldClock); | |||
|
|||
if (widget.clockUpdatedAt != oldClock.clockUpdatedAt) { | |||
if (widget.timeLeft != oldClock.timeLeft || |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think that change is a good idea. The way to clock is designed is to rely only on clockUpdatedAt
to know when the clock has changed. We want to force update clockUpdateAt
, and here you'd broke that contract.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure to understand your comment. Do you mean that the only way to change the clock should be the clockUpdateAt
field ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only way to indicate the clock has changed is to update clockUpdatedAt
. Meaning if you want to update timeLeft
you have to update clockUpdatedAt
. We want to support updating the clock with the same time left, so this is the only way to ensure it.
If you don't provide at all the clockUpdatedAt
it means timeLeft
will never change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can read the tests in clock_test.dart
to understand also, it contains the specification.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand why you are saying that
We want to support updating the clock with the same time left, so this is the only way to ensure it.
With what I have done you can still update the clock with the same time left.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason I needed to also update the clock when timeLeft
change (which makes sense I think) is that on the broadcast game screen when going through the moves I need to display the clocks and the clocks are always inactive with no clockUpdatedAt
value expect for the current broadcast path if the game is still ongoing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What I could do instead is simply use a text widget but then why add an inactive
field.
@@ -115,7 +115,7 @@ void main() { | |||
expect(find.text('0:00.0'), findsOneWidget); | |||
}); | |||
|
|||
testWidgets('do not update if clockUpdatedAt is same', | |||
testWidgets('do not update if timeLeft and clockUpdatedAt are same', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cf. other comment, this change need to be removed.
Flutter fixed the issue on the master branch but I don't know when it will land in the beta. If you don't want to patch Flutter maybe I can just copy the fixed dropdown menu widget in the broadcast folder for now and we remove it once it lands on the beta channel ? |
Not sure about that. The problem with the dropdown menu is that we can't show more detailed info it seems. I think it would be very nice to show the round date as in the website, it is an important information. And it looks like we can't do it with I wonder what is the alternative? Maybe |
The dropdown menu entries can be larger than the button so that should be possible to show more detailed information. Maybe it can be done in a different pull request after merging this one ? This one is already bigger than what I planned to do. |
Plus, people would probably be very excited if this feature is released before the WCC ends, even if some features are missing |
You're right we'll see to improve the menu after. So you can put a copy of the widget in the meantime. |
Done. I also merged main to get the new search time setting and the new ui for settings. |
🎉 finally! I must thank you again @julien4215 , this was a long journey but we finally made it! Thanks to your dedication and hard work. Congrats! |
Happy to see it merged into main! And thanks for you thorough review. I'll try to make smaller PR in the future. This one got a bit out of hand. |
screen-20240910-235044.2.mp4