Dean Herbert
4526f8c07d
Move database backup creation to async thread where possible
2022-06-16 17:01:17 +09:00
Dean Herbert
17dbb599d1
Don't backup collection database
...
This is no longer required due to recent changes which mean the
collection database will retain beatmap references even if they aren't
loaded locally (see https://github.com/ppy/osu/pull/18619 ).
2022-06-16 16:48:53 +09:00
Bartłomiej Dach
1acbb87aa6
Ensure AvailableMods.Value
is never null
2022-06-15 17:40:16 +02:00
Bartłomiej Dach
30382b0445
Fill out GetModsFor()
xmldoc and annotate items as non-null
2022-06-15 17:40:15 +02:00
Bartłomiej Dach
e74b563b91
Add protection against arbitrary exceptions from GetModsFor()
2022-06-15 17:31:46 +02:00
Bartłomiej Dach
6e5e506fb4
Add protection against rulesets returning null mods
2022-06-15 17:31:46 +02:00
Dean Herbert
54a32bde44
Don't report sentry errors from builds targetting a different server
2022-06-03 16:29:55 +09:00
Dan Balasescu
f111d33b25
Merge pull request #18339 from peppy/editor-timing
...
Add first pieces of editor timing UI
2022-05-23 11:12:22 +09:00
Dean Herbert
007582afb9
Remove unused usings resulting from namespace move
2022-05-22 23:55:33 +09:00
Dean Herbert
eabf578282
Use interface to convey beat sync information
2022-05-22 22:44:54 +09:00
Dean Herbert
218642c300
Update unsafe file write usages
2022-05-16 18:05:27 +09:00
Dean Herbert
9dce329e99
Remove build suffix from version when reporting to sentry
2022-05-11 10:38:35 +09:00
Dean Herbert
b2a57c34bb
Move implementation to base
2022-05-10 19:10:34 +09:00
Dean Herbert
4d22f26266
Rename property and improve xmldoc
2022-05-10 19:07:07 +09:00
Dean Herbert
cac6d5569c
Fix incorrect variable reference in log output
2022-05-10 19:07:00 +09:00
Salman Ahmed
bcd91ac743
Move exception soft-handling logic to OsuGameBase
2022-05-10 10:02:32 +03:00
Dean Herbert
975883da5c
Move all usages of client.realm
filename to a single const
2022-03-30 13:34:48 +09:00
Dean Herbert
b04ca111c6
Allow realm subscriptions to be initiated from a non-update thread
2022-03-24 23:41:07 +09:00
Dan Balasescu
21beb8774d
Change to lambda method
2022-03-14 13:54:54 +09:00
Dan Balasescu
4ae6cba080
Expose UseDevelopmentServer as virtual
2022-03-14 13:49:38 +09:00
Dan Balasescu
3a03833912
Merge pull request #16890 from peppy/beatmap-decoder-ruleset-store
...
Fix `LegacyBeatmapDecoder` not populating correct rulesets
2022-02-25 19:03:43 +09:00
Dean Herbert
98aaf83177
Add a centralised constant for the osu URL schema protocol
2022-02-18 15:57:37 +09:00
Dean Herbert
7a69de0060
Split out realm portion of RulesetStore
2022-02-16 17:13:31 +09:00
Susko3
214b2724de
Merge branch 'master' into input-settings
...
# Conflicts:
# osu.Game/OsuGameBase.cs
# osu.iOS/OsuGameIOS.cs
2022-02-12 11:48:46 +01:00
Dean Herbert
44f2d8a448
Allow game folder migration to fail gracefully when cleanup cannot completely succeed
2022-02-10 19:30:26 +09:00
Salman Ahmed
5e47ce333c
Change SafeAreaOverrideEdges
to be get-only and protected
2022-02-04 16:10:49 +03:00
Dean Herbert
915d63f6de
Limit safe area bottom override to iOS only
2022-02-04 18:58:29 +09:00
Dean Herbert
8fc4d0c6f5
Add override edge rule to overflow above home indicator on iOS
2022-02-04 18:20:17 +09:00
Dean Herbert
52fdf0349f
Add safe area support via ScalingContainer
2022-02-04 16:37:05 +09:00
Bartłomiej Dach
16e0cc6a2b
Remove IIpcHost
param from ScoreManager
...
No longer used since 3e3b9bc963
.
2022-02-01 21:35:40 +01:00
Dean Herbert
08948f60f3
Move backups to "backups" subfolder to make them easier to find
2022-01-27 14:39:13 +09:00
Dean Herbert
fc58b202b1
Fix crash when trying to migrate collection database that doesn't exist
2022-01-25 15:45:23 +09:00
Dean Herbert
6eb2c28e41
Rename RealmContextFactory
to RealmAccess
2022-01-24 20:38:07 +09:00
Dean Herbert
855ef3fa92
Create backup before any realm contexts are used
2022-01-22 11:52:46 +09:00
Dean Herbert
5be41a189b
Expose EF context factory for use in external migration logic
2022-01-21 14:56:28 +09:00
Dean Herbert
5df46d0a54
Remove all calls to Realm.Refresh
to fix blocking overhead from subscriptions
...
Turns out this is not required if realm is aware of a
`SynchronizationContext`. See
https://github.com/realm/realm-dotnet/discussions/2775#discussioncomment-2005412
for further reading.
2022-01-20 20:23:18 +09:00
Dean Herbert
fad66d7682
Backup collections alongside main databases when migrating to realm
2022-01-19 16:31:36 +09:00
Dan Balasescu
8c120c6bfb
Merge pull request #16491 from peppy/realm-integration/safer-migration
...
Improve safety and logging of realm migration process
2022-01-19 12:23:48 +09:00
Dean Herbert
02baad30d7
Merge branch 'master' into global-bindable-thread-safety
2022-01-18 18:12:00 +09:00
Dean Herbert
8b8940439e
Fix starting game with non-default ruleset failing
2022-01-18 16:22:15 +09:00
Dean Herbert
b1a75ce480
Permanently delete client.db
after migration completes
2022-01-18 14:17:43 +09:00
Dean Herbert
b9ec860cf2
Ensure global beatmap/ruleset are always mutated from the update thread
...
This came up while testing the new realm thread, where `MusicController`
would fall over when `OsuTestScene` changes the global beatmap from an
async load thread (causing a cross-thread realm access).
We don't want to have to schedule every usage of these bindables, so
this seems like a good constraint to put in place.
2022-01-18 13:29:24 +09:00
Susko3
f3eaa95041
Move input handler settings creation to OsuGameBase
2022-01-15 14:53:41 +01:00
Dean Herbert
ded1d87739
Move RulesetStore
construction earlier in process so rulesets are available for EF migration
2022-01-13 18:23:18 +09:00
Dean Herbert
e0c59f4b3c
Localise EF context factory usage to migration only
2022-01-12 17:49:11 +09:00
Dean Herbert
47390d7ec3
Update handling of ruleset nullability when handling a game-wide change
2022-01-12 17:49:10 +09:00
Dean Herbert
3ecd535f6e
Add back missing IRulesetStore
cache
2022-01-12 17:00:16 +09:00
Dean Herbert
53792811b2
more fixes (almost compiles, except ruleset and manager)
2022-01-12 16:57:27 +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
116f35c52a
Remove EF FileStore
2022-01-12 16:39:36 +09:00
Dean Herbert
3ecd889fef
Replace EF RulesetStore
with realm version
...
Pass full EF context factory to `RealmContextFactory` for migration purposes
2022-01-12 16:39:36 +09:00
Bartłomiej Dach
5cbaa028eb
Use extracted ruleset config cache implementation in DI
2021-12-23 19:02:10 +01:00
Dean Herbert
452fa93444
Merge branch 'master' into realm-integration/skins-rebase
2021-12-06 15:21:02 +09:00
Dean Herbert
e75e209053
Cache and consume IRulesetStore
where feasible
2021-12-03 18:16:01 +09:00
Dean Herbert
65f0a80c97
Merge branch 'master' into realm-integration/skins-rebase
2021-12-02 13:37:20 +09:00
Dean Herbert
87883f1fe4
Add BeatmapLookupCache
2021-11-30 19:28:45 +09:00
Dean Herbert
1ff0326f8e
Merge branch 'master' into realm-integration/skins-rebase
2021-11-30 15:50:10 +09:00
Dean Herbert
6f66ecd77b
Move migrations to own file and add user skin choice config migration
2021-11-30 15:41:18 +09:00
Dean Herbert
6e4cd91b7b
Fix update thread realm context never being Refresh()
ed
2021-11-30 14:12:36 +09:00
Dean Herbert
384a0664c2
Remove unused migration method
2021-11-30 14:05:44 +09:00
Dean Herbert
29d074bdb8
Implement missing behaviours required for skin file operations via RealmArchiveModelManager
2021-11-29 18:28:25 +09:00
Dean Herbert
eeccf836ec
Remove unnecessary GameHost
parameter
2021-11-25 17:42:41 +09:00
Dean Herbert
a2ab9f457d
Move score download logic out of ScoreManager
2021-11-25 17:33:04 +09:00
Dean Herbert
716543b5b3
Move beatmap download logic out of BeatmapManager
2021-11-25 17:29:41 +09:00
Dan Balasescu
c4b5a07f4b
Merge branch 'master' into realm-move-data-migration-to-context-factory
2021-11-24 14:40:26 +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
Dean Herbert
4149d458f0
Move realm data migrations inside the RealmContextFactory
2021-11-23 18:14:15 +09:00
Dean Herbert
505fede44d
Pass the full EF context rather than a legacy RulesetStore
2021-11-23 17:40:20 +09:00
Dean Herbert
1f321e2910
Run EF migrations earlier to ensure it is complete before usage
2021-11-23 11:48:58 +09:00
Dean Herbert
329bae50b0
Switch realm ruleset configuration to use ruleset's ShortName
as key
2021-11-22 18:52:00 +09:00
Dean Herbert
ca26b6c540
Provide RealmContextFactory
with the EF RulesetStore
for migration purposes
2021-11-22 18:51:44 +09:00
Dean Herbert
3b485b5f37
Rewrite PreviewTrackManager
to avoid constructing TrackBass
locally
...
This paves the way for the framework code quality change
(https://github.com/ppy/osu-framework/pull/4873 ) which stops exposing
the constructor.
Most of the restructuring here is required to give `PreviewTrackManager`
an adjustable target to apply the global mute.
2021-11-09 17:38:12 +09:00
Dean Herbert
f5842e7587
Shorten variable names
2021-11-08 18:24:37 +09:00
Dean Herbert
3183b20e2f
Merge branch 'master' into use-ReadableKeyCombinationProvider
2021-11-08 18:15:49 +09:00
Dean Herbert
ea0715cce4
Add missing dispose call
2021-11-08 16:35:05 +09:00
Dean Herbert
dbdae4b033
Merge branch 'master' into realm-ruleset-store-thread-correctness
2021-11-08 15:21:30 +09:00
Dean Herbert
413f98999a
Start initialising RealmRulesetStore
on startup
2021-11-08 15:10:19 +09:00
Susko3
c3069ad002
Change to use ReadableKeyCombinationProvider
...
Changes all usages of `KeyCombination.ReadableString()` to
`ReadableKeyCombinationProvider.GetReadableString()`.
Subscribing to `KeymapChanged` is only required in `KeyButton`.
All other places query `GetReadableString()` every time.
2021-11-08 06:55:26 +01:00
Dean Herbert
54f72d68ca
Revert weird event flow in model manager/importers
2021-11-05 19:12:49 +09:00
Dean Herbert
818fac6ac8
Make realm a non-drawable component to better order disposal
...
Until now, the `RealmContextFactory` would be disposed as part of the
drawable hierarchy. This is too early, as it may be being used by higher
level components (like `ConfigManager`s, see #15115 ) that perform final
operations after the drawables have been disposed.
Seems to make sense moving this out of the drawable hierarchy and in
line with how we were doing things with EF.
2021-10-15 13:58:16 +09:00
Dean Herbert
0df9ab3eec
Fix migration blocking code running on the wrong thread
2021-10-12 16:04:09 +09:00
Dean Herbert
57c5be39d3
Merge branch 'master' into remove-local-realm-thread-switch-handling
2021-10-04 20:52:44 +09:00
Dean Herbert
853cf6feaa
Rename last remaining BeatmapInfo Beatmap
usage
2021-10-04 17:35:53 +09:00
Dean Herbert
ae5d1e8ac0
Merge branch 'master' into remove-local-realm-thread-switch-handling
2021-10-04 17:17:10 +09:00
Bartłomiej Dach
86240cc8ec
Add alternate Torus font
2021-10-03 23:36:39 +02:00
Dan Balasescu
d24f89fead
Merge pull request #14906 from peppy/update-realm-context-factory
...
Refine `RealmContext` implementation
2021-10-01 22:57:03 +09:00
Dean Herbert
3ddb348252
Merge branch 'online-lookup-cache-separation' into beatmap-manager-split
2021-10-01 01:49:31 +09:00
Dean Herbert
2ed28f625a
Pass whole queue in rather than function
2021-10-01 01:46:37 +09:00
Dean Herbert
27c4f2b06e
Add missing disposal
2021-10-01 01:38:50 +09:00
Dean Herbert
38cd383aaf
Remove local handling of realm when switching thread modes
2021-10-01 00:27:54 +09:00
Dean Herbert
9fa901f6aa
Refine RealmContext
implementation API
2021-09-30 23:56:38 +09:00
Dean Herbert
7a72747d88
Add back optional online lookups
2021-09-30 17:18:39 +09:00
Dean Herbert
90225f2082
Hook up all required interfaces to new BeatmapManager
2021-09-30 17:18:39 +09:00
Dean Herbert
6ffd9fdcfa
Split out BeatmapOnlineLookupQueue
from BeatmapManager
2021-09-30 14:46:01 +09:00
Dean Herbert
edb1230111
Fix potential nullref throw on failed startup
2021-09-16 22:48:09 +09:00
Dean Herbert
a1d325cb22
Mark key and value non-nullable (at realm end) and simplify Value
logic
2021-09-15 17:16:05 +09:00
Dean Herbert
a150fb2996
Add nullability directive and make variant non-nullable
2021-09-15 17:16:05 +09:00
Dean Herbert
dcfe9c67e3
Make ruleset id non-nullable
2021-09-15 17:12:04 +09:00
Dean Herbert
80ecf81be3
Rename all databased setting classes to be specific to rulesets for now
2021-09-15 17:12:04 +09:00
Dean Herbert
5bb741b4e8
Remove migration of key bindings
2021-09-15 17:04:38 +09:00
Dean Herbert
2bcb3fd304
Add migration of existing settings
2021-09-15 16:31:13 +09:00
Dean Herbert
a2f1752344
Make settings works with current caching structure
...
Will likely pull out that `RulesetConfigCache` next, but this is an
"everything works" state.
2021-09-15 16:31:13 +09:00
Dean Herbert
187c557ea8
Begin migrating settings implementation across to realm
2021-09-15 16:22:14 +09:00
Dean Herbert
1aa95de530
Merge branch 'master' into score-ordering
2021-09-07 17:45:38 +09:00
Dan Balasescu
79fd2d46f6
Merge branch 'master' into test-efficiency
2021-09-07 16:14:12 +09:00
Dean Herbert
5b13b566b5
Reduce startup overhead during default key binding handling
2021-09-07 15:19:23 +09:00
Dean Herbert
2a5b857f10
Avoid loading unnecessary fonts in headless testing
2021-09-07 00:45:53 +09:00
Dean Herbert
ab1c64591f
Move sample playback debounce time to central const
2021-09-05 13:25:10 +09:00
smoogipoo
f14d66aafc
Commit missed line
2021-09-02 10:35:00 +09:00
Bartłomiej Dach
d9db1ecee9
Remove game-global popover container
2021-08-28 20:05:59 +02:00
Dean Herbert
46c72334fb
Fix stack overflow in ruleset change rejection logic
2021-07-30 01:54:30 +09:00
Dean Herbert
046f30a268
Reject invalid global ruleset values
2021-07-26 16:34:38 +09:00
Dean Herbert
481e4dedb0
Move PopoverContainer
to OsuGameBase
2021-07-13 16:51:31 +09:00
Dean Herbert
ec71deec51
Remove some mentions of "lazer"
...
I am aware there are more throughout the codebase but intentionally left
the remaining mentioned for one reason or another. The intention here is
to mainly change user-facing versioning to change the positioning of the
"lazer" term (to be where we would expect "cuttingedge" or "beta" to
be).
2021-07-04 12:41:27 +09:00
Dean Herbert
9acc5e38bb
Add basic logging for osu! storage migration
...
When looking into the test failure at https://github.com/ppy/osu/runs/2940065457 , it became apparent that we are not showing the migration process anywhere in logs. It's the cause of many issues, and we would want to see this in CI and user logs when occurring.
2021-06-29 20:23:25 +09:00
Dean Herbert
7dd566dc46
Add null check for safety
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-06-28 15:08:49 +09:00
Dean Herbert
57ae87956a
Update execution state change blocking logic in line with framework changes
2021-06-25 15:27:40 +09:00
Dean Herbert
6922de12c6
Add extra null safety in dispose call
2021-06-24 17:17:12 +09:00
smoogipoo
c85edd2b55
Merge branch 'master' into fix-realm-state-change-crashes
2021-06-23 21:20:53 +09:00
Dean Herbert
d148656108
Update in line with framework event structural changes (and add unbind)
2021-06-23 18:08:34 +09:00
Dean Herbert
28f4c56cd6
Fix minor typo in comment
2021-06-23 16:30:28 +09:00
Dean Herbert
f03c2bab48
Update event name in line with framework changes
2021-06-22 22:45:13 +09:00
Dean Herbert
a4b66bec2e
Ensure realm contexts are flushed when update thread changes native thread
2021-06-22 18:18:25 +09:00
Dean Herbert
3f336d88ec
Merge pull request #11461 from peppy/realm-key-binding-store
...
Add initial realm database implementation with KeyBindingStore migration
2021-06-19 02:49:41 +09:00
smoogipoo
5cf2ac78fc
Adjust font namespaces
2021-06-18 15:40:35 +09:00
Gagah Pangeran Rosfatiputra
4b926791b5
add inter font
2021-06-16 21:13:01 +07:00
Dean Herbert
9044a20120
Merge branch 'master' into realm-key-binding-store
2021-06-10 13:58:08 +09:00
Dean Herbert
071c07586a
Increase music volume back to 80% for the time being
2021-06-04 15:00:53 +09:00
Dean Herbert
b16d10bd95
Provide game-wide resources via IStorageResourceProvider
2021-05-31 18:57:47 +09:00
smoogipoo
a4dca6f839
Reorder methods around load()
2021-05-31 13:39:18 +09:00
Dean Herbert
ce96c58230
Move public members up
2021-05-28 02:46:26 +09:00
Dean Herbert
fe6b1936cb
Move OsuUserInputManager
out from nested class
2021-05-28 02:46:03 +09:00
Dean Herbert
b4c13d837d
Move import logic out to partial class
2021-05-28 02:44:44 +09:00
Dean Herbert
b8edca59eb
General function reorganisation
2021-05-28 02:37:14 +09:00
Dean Herbert
4e49fbf7fb
Switch protected properties to private
where feasible
2021-05-28 02:30:31 +09:00
Dean Herbert
d24a712dd4
Move protected properties to one location and mark setters private
where feasible
2021-05-28 02:27:06 +09:00
Dean Herbert
df703b68ec
Merge branch 'master' into realm-key-binding-store
2021-05-25 13:41:48 +09:00
smoogipoo
a74405d0ed
Merge branch 'master' into restructure-spectator-client
2021-05-20 18:53:42 +09:00
smoogipoo
df80531a0a
Split online connectivity into OnlineSpectatorClient
2021-05-20 16:30:56 +09:00
smoogipoo
6beeb7f7c4
Rename SpectatorStreamingClient -> SpectatorClient
2021-05-20 15:55:07 +09:00
smoogipoo
d197a7f6f5
Rename multiplayer client classes
2021-05-20 15:39:45 +09:00
Dean Herbert
9770c316e2
Add back the construction of the KeyBindingStore
...
This reverts commit 21b6adbf79
.
2021-04-26 18:26:57 +09:00
Dean Herbert
21b6adbf79
Remove DI caching of RealmKeyBindingStore
2021-04-26 17:52:17 +09:00
Dean Herbert
8961203f08
Move guid initialisation to database model itself
2021-04-26 17:06:03 +09:00
Dean Herbert
78f274d51a
Merge branch 'master' into realm-key-binding-store
2021-04-22 12:13:23 +09:00
Dean Herbert
dbb8f7f4a9
Tidy up initialisation code and avoid using DI on inherited class
2021-04-19 11:30:55 +09:00
Dean Herbert
5b06a68b93
Merge pull request #12330 from Cublibre/master
...
Send a warning notification if device is unplugged and at low battery
2021-04-15 19:21:04 +09:00
Dean Herbert
4852630c93
Fix import multiple file types via drag potentially reaching the wrong importer
2021-04-13 14:03:42 +09:00
Christine Chen
43b97fe0ad
Refactor PowerStatus (now called BatteryInfo)
2021-04-12 10:52:52 -04:00
Salman Ahmed
419fd4470c
Reorder method declaration
2021-04-11 15:19:51 -04:00