1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 07:20:24 +08:00
Commit Graph

479 Commits

Author SHA1 Message Date
Dean Herbert
8f5d21dc70
Actually fix realm selection retention regression 2023-12-19 18:10:55 +09:00
Dean Herbert
7e9c1b2acb
Use sender's realm (because we can) 2023-12-19 17:27:52 +09:00
Dean Herbert
25e3a8e82e
Fix a few of silly issues 2023-12-18 22:45:58 +09:00
Dean Herbert
5755fa214a
Cache non-filtered beatmap counts to massively improve count performance 2023-12-18 20:44:08 +09:00
Dean Herbert
6fa1f5ef9b
Simplify invalidation logic
The only case where this was checking is guaranteed by realm to only be called once.
2023-12-18 20:31:02 +09:00
Dean Herbert
87b7699fcc
Avoid calling invalidation logic per beatmap set updated
Realm will batch the updates. We don't want to do expensive operations per set when we don't need to.
2023-12-18 20:31:02 +09:00
Dean Herbert
32cc3f9ef7
Combine multiple similar invalidation logic into single event 2023-12-18 20:31:02 +09:00
Dean Herbert
137a1d948d
Allow interacting with the carousel anywhere in empty space at song select 2023-10-20 20:04:11 +09:00
Bartłomiej Dach
63e92f8fab
Fix status on carousel beatmap set not showing in split difficulty mode 2023-09-06 08:25:19 +02:00
Bartłomiej Dach
b9795eb3d4
Fix changes to beatmap sets being undone on switching sort mode 2023-08-28 11:02:22 +02:00
Bartłomiej Dach
80ec18d117
Fix incorrect selection restore code in split case
The fallback to "any of the added sets" needs to be applied after
they've all been added, rather than with every added one. Otherwise, in
flows that expect a particular difficulty to be selected in the end
(such as exiting from editor) would end up switching away from the
edited beatmap.
2023-08-28 10:06:26 +02:00
Bartłomiej Dach
0af6cc1394
Fix online ID not being propagated in split difficulty mode
Would result in failures to re-download the beatmap in update flows, for
instance.
2023-08-28 10:05:59 +02:00
Dean Herbert
10b1450138 Rename remove method to better explain return type being IEnumerable 2023-08-25 18:10:54 +09:00
Dean Herbert
89eeff515b Reduce complexity of selection restore 2023-08-25 00:52:54 +09:00
Dean Herbert
9e94f38091 Fix typo in local variable 2023-08-24 18:33:15 +09:00
Dean Herbert
018be4c20f Fix selection not being retained when switching between split mode 2023-08-22 18:49:02 +09:00
Dean Herbert
ecbf0f138e Fix incorrect handling when new beatmaps arrive 2023-08-22 18:48:07 +09:00
Dean Herbert
2b1c6ae612 Ensure ID is maintained in temporary BeatmapSetInfos 2023-08-22 18:48:07 +09:00
Dean Herbert
290d18ad69 Split out difficulties in beatmap carousel in a bit of a hacky way
Seems like the simplest path forward for now, without a full rewrite.
2023-08-22 18:47:41 +09:00
Dean Herbert
a98a36872e Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
Salman Ahmed
39db17d2e9 Use better method to avoid rewinding to deleted beatmaps 2023-06-15 11:22:11 +03:00
Renzo Poggio
0991c56e1c
Add extra check in 'SelectPreviousRandom'
Check if the poped beatmap exists within the beatmapSets
2023-04-25 00:05:15 -03:00
Joseph Madamba
f80de08f24
Adjust BeatmapSetsChanged xmldoc
Co-Authored-By: Dean Herbert <pe@ppy.sh>
2023-04-10 11:28:23 -07:00
Joseph Madamba
c7dea71793
Use existing BeatmapSetsChanged action 2023-04-10 11:26:18 -07:00
Joseph Madamba
7f5b99c91b
Fix song select beatmap difficulty count not updating when deleting 2023-04-09 22:12:51 -07:00
Dean Herbert
dc669835e2 Show count of visible beatmaps at song select 2023-03-03 15:28:51 +09:00
Dean Herbert
4ad79a8a0a Move IsLoaded check inside BeatmapCarousel 2023-01-18 12:00:47 +09:00
Dean Herbert
93038ce496 Use OfType instead of forceful nullability 2023-01-10 17:52:21 +09:00
mk56-spn
6abbc7dc28 Further fix nullability 2023-01-09 20:59:28 +01:00
mk56-spn
69260ca3c3 remove unnecessary usages of nullable forgiveness, add asserts for debugging 2023-01-09 18:36:55 +01:00
mk56-spn
47fb467012 Remove nullable disabling in carousel 2023-01-08 19:02:48 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Bartłomiej Dach
7b274083d3
Fix phantom beatmap sets appearing on carousel after delete/update
Regressed in c40c70509e.

As it turns out, `item.Item.Filtered.Value` is not the only condition
that should be checked to determine if a carousel item should be hidden
or not - `item.Item.State.Value != CarouselItemState.Collapsed` should
also be true. This was even available as the `item.Item.Visible`
convenience property, which is used in this commit.

Failing to check `item.Item.State.Value` led to setting non-zero alpha
on collapsed carousel items, leading to phantom beatmap sets appearing,
as the alpha was set in the entire carousel's `Update()` method, thus
firing every frame.
2022-11-20 10:08:34 +01:00
Dean Herbert
c40c70509e Improve song select transition to gameplay 2022-11-04 15:24:37 +09:00
Endrik Tombak
5a118cfdc3 Merge branch 'master' of https://github.com/ppy/osu into carousel-perform-selection
 Conflicts:
	osu.Game.Tests/Visual/SongSelect/TestSceneBeatmapCarousel.cs
2022-10-24 21:40:48 +03:00
Dean Herbert
f3bda4e040 Fix weird edge case of nullability in CarouselRoot
A bit unfortunately, but it's what we get for having ctor level bindings..
2022-09-07 14:27:25 +09:00
Dean Herbert
e18b524f8e Fix missing null checks on selectedBeatmap fields in BeatmapCarousel 2022-09-07 14:12:35 +09:00
Dean Herbert
241d33d415 Apply NRT to BeatmapCarousel 2022-09-07 14:07:53 +09:00
Salman Ahmed
a3e595a9aa Update comment to include inserted indices 2022-08-26 14:51:19 +03:00
Salman Ahmed
81c0a641b4 Fix selection fallback path not updated to check inserted indices 2022-08-26 14:51:08 +03:00
Dean Herbert
a146db0e35 Merge branch 'master' into carousel-perform-selection 2022-08-26 19:29:00 +09:00
Dean Herbert
9d2c2b71cf Change conditional to check for insertions in addition to modifications
It is possible that the import process itself marks the previous
beatmaps as deleted due to an overlap in metadata or otherwise.
2022-08-16 16:21:36 +09:00
Dean Herbert
e6a3659581 Guard against NewModifiedIndices being empty 2022-07-27 14:23:47 +09:00
Dean Herbert
24d75612e2 Always attempt to follow selection, even if difficulty name / metadata change 2022-07-27 14:18:53 +09:00
Dean Herbert
8105d4854a Fix beatmap carousel not maintaining selection if currently selected beatmap is updated 2022-07-27 13:33:48 +09:00
Dean Herbert
fc0c9f76bd Fix UpdateBeatmapSetButton intermittent test failure
Carousel would only expire items when off-screen. This meant that for a
case (like a test) where items are generally always on-screen,
`UpdateBeatmapSet` calls would result in panels remaining hidden but not
cleaned up.
2022-07-21 16:24:48 +09:00
Dean Herbert
3cfe624af1 Fix one more missed method with incorrect terminology 2022-07-21 16:16:41 +09:00
Dean Herbert
a05d7f4d8c Change carousel terminology to not use Children / InternalChildren 2022-07-21 16:06:06 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu
c43670fcd9
Merge pull request #18603 from peppy/fix-import-dialog
Add placeholder when no results are visible at song select
2022-06-08 15:22:31 +09:00
Dean Herbert
2e0b888410 Fix song select carousel invalidating every frame during global overlay dimming 2022-06-07 23:46:53 +09:00
Dean Herbert
0d32c94104 Add initial implementation of beatmap carousel no-results-placeholder 2022-06-07 17:25:06 +09:00
Salman Ahmed
9416346c94 Globalise beatmap selection key bindings as "group" selection 2022-05-04 16:46:32 +03:00
Salman Ahmed
d52a1a5d23 Add key binding for beatmap selection in song select 2022-05-04 03:52:10 +03:00
Dean Herbert
eb25730b61 Revert "Merge pull request #16716 from peppy/carousel-less-invalidations"
This reverts commit 8d13e0514b, reversing
changes made to 95582a9023.
2022-02-05 16:12:58 +09:00
Jamie Taylor
0f48c0131c
Layer playback of beatmap-changed and random-beatmap samples 2022-02-04 19:57:54 +09:00
Dean Herbert
6d6327d3da Fix test beatmap loading potentially performing selection before carousel itself is loaded 2022-02-03 18:40:16 +09:00
Dean Herbert
4f3e55a0ce
Merge branch 'master' into songselect-random-sfx 2022-02-02 17:18:24 +09:00
Dean Herbert
8917ab78f4 Reduce unnecessary container nesting and adjust empty state opacity slightly 2022-01-31 14:46:20 +09:00
Jamie Taylor
f59828e2d9
Add audio feedback to song select 'random' 2022-01-28 13:43:37 +09:00
Dean Herbert
449e9bcf5c Ensure beatmap carousel scroll position is maintained during deletion operations 2022-01-27 16:52:02 +09:00
Dean Herbert
0a45aa80cb Remove unnecessary double-schedule in UpdateBeatmapSet 2022-01-27 16:52:02 +09:00
Dean Herbert
d7342880f5 Update remaining cases of clashes with realm.Write and realm.RegisterForNotifications 2022-01-25 13:09:48 +09:00
Dean Herbert
e23b10e6a5 Update remaining cases of clashing variable name in realm.Run(realm.. 2022-01-25 13:04:05 +09:00
Dean Herbert
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
Dean Herbert
40aa873190 Rename register methods to better explain their purpose 2022-01-24 14:37:36 +09:00
Dean Herbert
e9e3e024a1 Update all usages of QueryAsyncWithNotifications to use new Register pathway 2022-01-23 20:28:04 +09:00
Dean Herbert
61cef42be9 Proof of concept realm subscriptions via Register 2022-01-23 20:28:04 +09:00
Dean Herbert
1f157d729d Update existing subscriptions to new style
Fix missing detach calls in `MusicController`
2022-01-21 20:05:03 +09:00
Dean Herbert
8f1dfa33a2 Merge branch 'master' into realm-context-use-update-when-feasible 2022-01-21 18:03:09 +09:00
Dean Herbert
114c9e8c1f Update all usages of CreateContext to use either Run or Write 2022-01-21 17:27:08 +09:00
Dean Herbert
3bcdce128c Use dictionary add for safety 2022-01-21 15:29:21 +09:00
Dean Herbert
ff4f40db8a Merge branch 'master' into carousel-performance-n 2022-01-21 15:27:42 +09:00
Dean Herbert
5b24800b0e Avoid applying filter in UpdateBeatmapSet flow 2022-01-21 13:26:25 +09:00
Dean Herbert
ba31ddee01 Revert beatmapSets reference to fix tests
New version changed order.
2022-01-21 00:34:12 +09:00
Dean Herbert
80f3a67876 Use for instead of foreach to avoid enumerator overhead 2022-01-20 22:21:00 +09:00
Dean Herbert
0b93f3c88f Add <Guid,CarouselBeatmapSet> dictionary to speed up update operations in carousel 2022-01-20 22:12:49 +09:00
Dean Herbert
a8ce2c5edf Detach before sending BeatmapSetInfo to any handling method 2022-01-20 21:14:10 +09:00
Dean Herbert
b1cf3befa6 Fix incorrect query in comment 2022-01-20 18:36:20 +09:00
Dean Herbert
3ba712703b Add a note about hidden beatmap check 2022-01-20 17:50:17 +09:00
Dean Herbert
1dabf6c8a5 Fix BeatmapCarousel signalling it is finished loading before catching up on realm changes 2022-01-20 16:39:42 +09:00
Dean Herbert
6c46fd6931 Fix some failing tests due to realm beatmaps overwriting test beatmaps 2022-01-20 00:19:16 +09:00
Dean Herbert
2789986699 Use asynchronous loading for beatmap carousel again 2022-01-19 18:15:43 +09:00
Dean Herbert
200fcb6f83 Detach beatmap set before checking hidden state 2022-01-19 16:59:49 +09:00
Dean Herbert
11ca1b6e7b Remove one more usage of IsManaged which could potentially go wrong 2022-01-17 13:40:27 +09:00
Dean Herbert
6025fe325d Fix filter criteria not being applied after carousel loads new beatmap sets 2022-01-13 15:08:51 +09:00
Dean Herbert
ef0f794fd6 Remove stay newline 2022-01-12 18:13:14 +09:00
Dean Herbert
34aa1bf21d Sanitise and remove some usages of Detach which are no longer required 2022-01-12 17:49:11 +09:00
Dean Herbert
0aff1c232b Fix deleted/hidden carousel queries 2022-01-12 17:49:11 +09:00
Dean Herbert
7dba3c3551 Fix most remaining test issues 2022-01-12 17:49:11 +09:00
Dean Herbert
02d0ca2741 Fix protected beatmaps showing up in the song select carousel 2022-01-12 17:49:10 +09:00
Dean Herbert
41d90cd0b5 Fix beatmap carousel test failures 2022-01-12 17:49:10 +09:00
Dean Herbert
e74a5022c9 Fix multiple tests via null checks and changing ToLive to Detach
flow
2022-01-12 17:00:17 +09:00
Dean Herbert
8461eaab46 BeatmapSetInfo detach support 2022-01-12 17:00:16 +09:00
Dean Herbert
c9257e9ecc Fix missing disposal of realm subscriptions in BeatmapCarousel 2022-01-12 17:00:16 +09:00
Dean Herbert
3152d2d8a0 "Update" BeatmapCarousel 2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
Dean Herbert
b8cd3cdbbc Various updates to ruleset and primary key usages to move closer to realm support 2022-01-12 16:57:13 +09:00
Dean Herbert
729f681938 Update cases where equality can be used instead of primary key equality 2021-11-24 12:49:57 +09:00