protected override void Dispose(bool isDisposing) { //refresh token may have changed. Config.Set(OsuConfig.Token, API.Token); base.Dispose(isDisposing); }
public void TestExplicitConfig() { AddStep("configure explicit content to allowed", () => localConfig.Set(OsuSetting.ShowOnlineExplicitContent, true)); AddAssert("explicit control set to show", () => control.ExplicitContent.Value == SearchExplicit.Show); AddStep("configure explicit content to disallowed", () => localConfig.Set(OsuSetting.ShowOnlineExplicitContent, false)); AddAssert("explicit control set to hide", () => control.ExplicitContent.Value == SearchExplicit.Hide); }
public void APIStateChanged(APIAccess api, APIState state) { switch (state) { case APIState.Online: LocalConfig.Set(OsuSetting.Username, LocalConfig.Get <bool>(OsuSetting.SaveUsername) ? API.Username : string.Empty); break; } }
public void APIStateChanged(APIAccess api, APIState state) { switch (state) { case APIState.Online: Config.Set(OsuConfig.Username, Config.Get <bool>(OsuConfig.SaveUsername) ? API.Username : string.Empty); Config.Set(OsuConfig.Password, Config.Get <bool>(OsuConfig.SavePassword) ? API.Password : string.Empty); break; } }
public override void RecycleLocalStorage() { base.RecycleLocalStorage(); using (var config = new OsuConfigManager(LocalStorage)) { config.Set(OsuSetting.Version, "2020.101.0"); config.Set(OsuSetting.DisplayStarsMaximum, 10.0); } }
public void TestFilterOnResumeAfterChange() { addRulesetImportStep(0); addRulesetImportStep(0); AddStep("change convert setting", () => config.Set(OsuSetting.ShowConvertedBeatmaps, false)); createSongSelect(); AddStep("push child screen", () => Stack.Push(new TestSceneOsuScreenStack.TestScreen("test child"))); AddUntilStep("wait for not current", () => !songSelect.IsCurrentScreen()); AddStep("change convert setting", () => config.Set(OsuSetting.ShowConvertedBeatmaps, true)); AddStep("return", () => songSelect.MakeCurrent()); AddUntilStep("wait for current", () => songSelect.IsCurrentScreen()); AddAssert("filter count is 2", () => songSelect.FilterCount == 2); }
protected override void Dispose(bool isDisposing) { //refresh token may have changed. if (Config != null && API != null) { Config.Set(OsuConfig.Token, API.Token); Config.Save(); } base.Dispose(isDisposing); }
private void load(OsuConfigManager config) { config.Set(OsuSetting.ShowStoryboard, true); storyboard = new Storyboard(); var backgroundLayer = storyboard.GetLayer("Background"); backgroundLayer.Add(new StoryboardSampleInfo("Intro/welcome.mp3", time: -7000, volume: 20)); backgroundLayer.Add(new StoryboardSampleInfo("Intro/welcome.mp3", time: -5000, volume: 20)); backgroundLayer.Add(new StoryboardSampleInfo("Intro/welcome.mp3", time: 0, volume: 20)); }
protected override void LoadComplete() { base.LoadComplete(); var version = game.Version; var lastVersion = config.Get <string>(OsuSetting.Version); if (game.IsDeployedBuild && version != lastVersion) { config.Set(OsuSetting.Version, version); // only show a notification if we've previously saved a version to the config file (ie. not the first run). if (!string.IsNullOrEmpty(lastVersion)) { notificationOverlay.Post(new UpdateCompleteNotification(version)); } } }
private void onTokenChanged(ValueChangedEvent <OAuthToken> e) => config.Set(OsuSetting.Token, config.Get <bool>(OsuSetting.SavePassword) ? authentication.TokenString : string.Empty);
private void window_OnSizeChanged() { Config.Set <int>(OsuConfig.Width, Window.Size.Width); Config.Set <int>(OsuConfig.Height, Window.Size.Height); }
private void run() { while (thread.IsAlive) { switch (State) { case APIState.Failing: //todo: replace this with a ping request. log.Add(@"In a failing state, waiting a bit before we try again..."); Thread.Sleep(5000); if (queue.Count == 0) { log.Add(@"Queueing a ping request"); Queue(new ListChannelsRequest { Timeout = 5000 }); } break; case APIState.Offline: case APIState.Connecting: //work to restore a connection... if (!HasLogin) { State = APIState.Offline; Thread.Sleep(50); continue; } State = APIState.Connecting; // save the username at this point, if the user requested for it to be. config.Set(OsuSetting.Username, config.Get <bool>(OsuSetting.SaveUsername) ? ProvidedUsername : string.Empty); if (!authentication.HasValidAccessToken && !authentication.AuthenticateWithLogin(ProvidedUsername, password)) { //todo: this fails even on network-related issues. we should probably handle those differently. //NotificationOverlay.ShowMessage("Login failed!"); log.Add(@"Login failed!"); password = null; authentication.Clear(); continue; } var userReq = new GetUserRequest(); userReq.Success += u => { LocalUser.Value = u; failureCount = 0; //we're connected! State = APIState.Online; }; if (!handleRequest(userReq)) { Thread.Sleep(500); continue; } // The Success callback event is fired on the main thread, so we should wait for that to run before proceeding. // Without this, we will end up circulating this Connecting loop multiple times and queueing up many web requests // before actually going online. while (State != APIState.Online) { Thread.Sleep(500); } break; } //hard bail if we can't get a valid access token. if (authentication.RequestAccessToken() == null) { Logout(false); State = APIState.Offline; continue; } //process the request queue. APIRequest req; while (queue.TryPeek(out req)) { if (handleRequest(req)) { //we have succeeded, so let's unqueue. queue.TryDequeue(out req); } } Thread.Sleep(1); } }