Commit Graph

81 Commits

Author SHA1 Message Date
04dbb6fc1b Add inline comment 2022-09-14 00:49:02 +03:00
07f577a0c6 Fix beatmap listing potentially showing duplicate beatmap cards 2022-09-13 01:39:21 +03:00
beb3d41f0c Fix unsafe usage of APIAccess.LocalUser in BeatmapListingOverlay 2022-08-09 17:11:44 +09:00
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
e744840d07 Ensure old results are cleared from beatmap overlay on logout 2022-02-22 14:56:04 +09:00
33ab356dc5 Fix expanded card content being clipped on beatmap listing overlay 2022-01-19 22:10:05 +01:00
39650ce7e9 Merge pull request #16307 from peppy/beatmap-listing-bottom-padding
Add padding to the bottom of the beatmap listing overlay to avoid hovered panels exceeding visible bounds
2022-01-04 14:14:42 +09:00
de33b420ab Add safety against performing operation on non-alive foundContent 2022-01-03 20:02:46 +01:00
586f158920 Remove initial foundContent value
It always is replaced on the first search anyway, and just remains
forever in the overlay otherwise.
2022-01-03 19:52:42 +01:00
6650a468e0 Fix and simplify very broken beatmap listing content swap-out logic
The beatmap listing content swap-out logic was already a source of
several problems, and several attempts of fixing it were made. But as it
turns out it was terminally broken in several aspects.

* The `BypassAutoSizeAxes` juggling was finicky and ugly, and didn't
  really look much different than an instant fade. Therefore, all fade
  durations and manipulations of `BypassAutoSizeAxes` are removed.

* The transform sequence juggling the `BypassAutoSizeAxes` manipulations
  was enqueued on the content which is being in the process of fading
  out. That was partially fixed in 25e38560, but as it turns out, that
  only works if `lastContent` is one of the two placeholder drawables
  (results not found / supporter required to use filter).

  It would not work if `lastContent` is a
  `ReverseChildIDFillFlowContainer` with cards from a previous search in
  it.
2022-01-03 19:51:46 +01:00
ef9f56e585 Fix bad check if content is placeholder
The `lastContent == foundContent` check, last touched in a49a4329, is
terminally broken, as it would always be false. `foundContent` is
mutated when a new card load task is started in `onSearchFinished()`,
which is *before* the aforementioned check.

The code prior to a49a4329 was checking against the two static reused
placeholder drawables which was the correct check to apply, and this
commit reverts to using a variant of that check.
2022-01-03 19:51:20 +01:00
97439c3df1 Rename method to reflect what it actually does 2022-01-03 19:30:17 +01:00
b9851b278d Add padding to the bottom of the beatmap listing overlay to avoid hovered panels exceeding visible bounds
Closes https://github.com/ppy/osu/issues/16120.
2022-01-03 13:18:28 +09:00
cc7089c3f4 Cancel more liberally 2021-12-24 19:00:09 +09:00
d602aebebb Add missing cancellation token and rename load task variable to match purpose 2021-12-24 18:58:31 +09:00
a49a4329ee Add capability to switch between card sizes 2021-12-23 15:55:37 +01:00
d0427ec85f Add support card size tab control to beatmap listing 2021-12-23 15:55:37 +01:00
25e38560ce Fix placeholder drawables on beatmap listing not always hiding correctly
`BeatmapListingOverlay.addContentToPlaceholder()`, in order to make
transitions between different beatmap listing content (whether it is
actual cards, or placeholders for no beatmaps found/supporter-specific
filters chosen), would set `BypassAutoSizeAxes = Y` on content as it is
fading out, to make the transition smoother. The property in question
was supposed to be getting restored to `None` on the next show.

In testing scenarios, it sometimes turned out that this wasn't the case,
therefore making the placeholders effectively not show - while they
were present and fully opaque, they would be the only child of
an auto-sized container with `BypassAutoSizeAxes = Y`, so the parent
auto-sized to a zero height, which logically follows from the premise,
but is not what was desired.

This in turn was caused by the fact that the `BypassAutoSizeAxes = Y`
set was scheduled, and sometimes it would be scheduled in such a way
that the drawable would cease to be present on the next frame due to its
alpha being past the cutoff point of 0.0001. Therefore the scheduled set
would not execute until the *next* time the placeholder was shown,
therefore causing the bug.

Fix by ensuring that the placeholder drawables are always present if
their schedulers have any tasks enqueued, on top of the usual checks of
alpha and scale performed via the base implementation.
2021-12-22 15:05:23 +01:00
88d4e95ad8 Rename BeatmapCard{ => Normal} 2021-12-21 08:26:21 +01:00
999bba439f Clarify usages of reverse child ID flow with inline comments 2021-12-06 21:02:40 +01:00
af10223ac4 Add reverse fill flows & depth specs at usage sites for correct Z-ordering 2021-12-05 20:07:46 +01:00
0f9ebe3d5d Use beatmap cards in beatmap listing overlay 2021-11-25 22:30:46 +01:00
a16c8f1ebc Update all beatmap overlay views to use APIBeatmap/APIBeatmapSet 2021-10-29 18:50:55 +09:00
b9c127c07e Improve content transitions in beatmap listing 2021-09-11 22:37:36 +02:00
0522500a57 Fix a couple of merge oversights 2021-07-01 19:45:17 +09:00
31dbc7798b Merge branch 'master' into linkify-metadata 2021-07-01 19:41:33 +09:00
9061ab0a27 Update/reword comments in listing overlay 2021-06-26 20:42:13 +02:00
b56dd7ff25 Fix naming and xmldocs in new beatmap search result structures 2021-06-26 20:35:07 +02:00
27735eeedb fixed code 2021-06-24 13:45:38 +08:00
0d17fb4259 fixed code 2021-06-22 13:53:21 +08:00
b162da5ee0 minor code change 2021-06-21 15:47:47 +08:00
22cc1e1452 fixed code style base on code analysis 2021-06-21 15:31:47 +08:00
3367456304 fixed SupporterRequiredDrawable style 2021-06-21 14:30:54 +08:00
0707642b76 fixed SupporterRequiredDrawable 2021-06-21 14:25:20 +08:00
d0a8b74823 fixed filter text order 2021-06-20 21:28:57 +08:00
996503eb2d fixed filter text display, added visual tests 2021-06-20 21:23:54 +08:00
42fdfbb9a1 added visual tests 2021-06-20 17:17:07 +08:00
27da3dc75a added supporter-only-filter content 2021-06-19 20:54:24 +08:00
4c5268694e Localise some of the BeatmapListingOverlay 2021-06-16 13:46:13 +09:00
178d88bcf1 Change BackgroundColour into a property 2021-02-09 18:32:44 +09:00
3206c7cbae Merge branch 'master' into overlay-header-refactor 2021-02-09 18:20:07 +09:00
93bb2611d6 Merge branch 'fix-beatmap-listing' into fix-beatmap-listing-2 2021-01-26 09:43:49 +03:00
ca0242debe Tidy up logic to correctly expire in cases where expiry is expected 2021-01-26 15:42:48 +09:00
0d8d0d6852 Apply alternative way of fixing 2021-01-26 01:03:29 +03:00
c317d60169 Add offline test scene for beatmap listing overlay 2021-01-26 00:03:20 +03:00
75d6dbdbb7 Fix beatmap listing placeholder potentially getting disposed 2021-01-26 00:03:20 +03:00
9efce5717f Fix beatmap listing placeholder disappearing on second time display 2021-01-26 00:03:20 +03:00
6e34ab5d15 Rename WebOverlay to OnlineOverlay 2021-01-18 11:13:38 +03:00
27ffc98445 Implement WebOverlay component 2021-01-18 10:48:12 +03:00
54982dcdd7 Refactor LoadingLayer to avoid applying effects to external drawables
In theory this seemed like a good idea (and an optimisation in some
cases, due to lower fill rate), but in practice this leads to weird edge
cases.

This aims to do away with the operations on external drawables by
applying a dim to the area behind the `LoadingLayer` when required.
I went over each usage and ensured they look as good or better than
previously.

The specific bad usage here was the restoration of the colour on dispose
(if the `LoadingLayer` was disposed in a still-visible state).

I'm aware that the `BeatmapListingOverlay` will now dim completely during
load. I think this is fine for the time being.
2021-01-05 17:31:45 +09:00