WIP fixes startup (a first one ...)
This commit is contained in:
parent
73dfd48f20
commit
9d22a93eb0
2 changed files with 42 additions and 36 deletions
|
|
@ -67,9 +67,10 @@ namespace BookAStar
|
|||
MainSettings.UserChanged += MainSettings_UserChanged;
|
||||
CrossConnectivity.Current.ConnectivityChanged += (conSender, args) =>
|
||||
{ App.IsConnected = args.IsConnected; };
|
||||
SetupHubConnection();
|
||||
MainSettings_UserChanged(this, null);
|
||||
if (CrossConnectivity.Current.IsConnected)
|
||||
StartHubConnection();
|
||||
|
||||
StartConnexion();
|
||||
}
|
||||
|
||||
// omg
|
||||
|
|
@ -106,7 +107,7 @@ namespace BookAStar
|
|||
// Called on rotation
|
||||
private void OnSuspended(object sender, EventArgs e)
|
||||
{
|
||||
StopHubConnection();
|
||||
StopConnection();
|
||||
int position = 0;
|
||||
DataManager.Instance.AppState.Clear();
|
||||
foreach (Page page in Navigation.NavigationStack)
|
||||
|
|
@ -125,7 +126,7 @@ namespace BookAStar
|
|||
// called on app startup, after OnStartup, not on rotation
|
||||
private void OnAppResumed(object sender, EventArgs e)
|
||||
{
|
||||
StartHubConnection();
|
||||
StartConnexion();
|
||||
// TODO restore the navigation stack
|
||||
base.OnResume();
|
||||
foreach (var pageState in DataManager.Instance.AppState)
|
||||
|
|
@ -316,7 +317,7 @@ namespace BookAStar
|
|||
if (isConnected)
|
||||
{
|
||||
// TODO Start all cloud related stuff
|
||||
StartHubConnection();
|
||||
StartConnexion();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -331,9 +332,10 @@ namespace BookAStar
|
|||
}
|
||||
}
|
||||
// Start the Hub connection
|
||||
public static async void StartHubConnection ()
|
||||
public static async void StartConnexion ()
|
||||
{
|
||||
try
|
||||
if (CrossConnectivity.Current.IsConnected)
|
||||
try
|
||||
{
|
||||
await chatHubConnection.Start();
|
||||
}
|
||||
|
|
@ -350,6 +352,8 @@ namespace BookAStar
|
|||
|
||||
public void SetupHubConnection()
|
||||
{
|
||||
if (chatHubConnection != null)
|
||||
chatHubConnection.Dispose();
|
||||
chatHubConnection = new HubConnection(Constants.SignalRHubsUrl);
|
||||
chatHubConnection.Error += ChatHubConnection_Error;
|
||||
|
||||
|
|
@ -367,11 +371,11 @@ namespace BookAStar
|
|||
DataManager.Instance.ChatUsers.OnPrivateMessage(msg);
|
||||
});
|
||||
}
|
||||
public static void StopHubConnection()
|
||||
public static void StopConnection()
|
||||
{
|
||||
try
|
||||
{
|
||||
chatHubConnection.Stop();
|
||||
chatHubConnection.Stop();
|
||||
}
|
||||
catch (WebException)
|
||||
{
|
||||
|
|
@ -385,18 +389,13 @@ namespace BookAStar
|
|||
}
|
||||
private void MainSettings_UserChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (chatHubConnection != null)
|
||||
{
|
||||
chatHubConnection.Dispose();
|
||||
chatHubConnection = null;
|
||||
chatHubProxy = null;
|
||||
}
|
||||
StopConnection();
|
||||
if (MainSettings.CurrentUser != null)
|
||||
{
|
||||
var token = MainSettings.CurrentUser.YavscTokens.AccessToken;
|
||||
SetupHubConnection();
|
||||
chatHubConnection.Headers.Add("Authorization", $"Bearer {token}");
|
||||
}
|
||||
StartConnexion();
|
||||
}
|
||||
|
||||
private void ChatHubConnection_Error(Exception obj)
|
||||
|
|
|
|||
|
|
@ -27,32 +27,39 @@ namespace BookAStar.Pages.UserProfile
|
|||
|
||||
public async void OnRefreshQuery(object sender, EventArgs e)
|
||||
{
|
||||
IsBusy = true;
|
||||
using (var client = UserHelpers.CreateJsonClient())
|
||||
// TODO disable the button when current user is not registered
|
||||
if (MainSettings.CurrentUser==null)
|
||||
ShowPage<AccountChooserPage>(null, true);
|
||||
else
|
||||
{
|
||||
using (var request = new HttpRequestMessage(HttpMethod.Get, Constants.UserInfoUrl))
|
||||
IsBusy = true;
|
||||
using (var client = UserHelpers.CreateJsonClient())
|
||||
{
|
||||
using (var response = await client.SendAsync(request))
|
||||
using (var request = new HttpRequestMessage(HttpMethod.Get, Constants.UserInfoUrl))
|
||||
{
|
||||
response.EnsureSuccessStatusCode();
|
||||
string userJson = await response.Content.ReadAsStringAsync();
|
||||
JObject jactiveUser = JObject.Parse(userJson);
|
||||
var username = jactiveUser["UserName"].Value<string>();
|
||||
var roles = jactiveUser["Roles"].Values<string>().ToList();
|
||||
var emails = jactiveUser["EMails"].Values<string>().ToList();
|
||||
var avatar = jactiveUser["Avatar"].Value<string>();
|
||||
var address = jactiveUser["Avatar"].Value<string>();
|
||||
var me = MainSettings.CurrentUser;
|
||||
me.Address = address;
|
||||
me.Avatar = avatar;
|
||||
me.EMails = emails;
|
||||
me.UserName = username;
|
||||
me.Roles = roles;
|
||||
MainSettings.SaveUser(me);
|
||||
using (var response = await client.SendAsync(request))
|
||||
{
|
||||
response.EnsureSuccessStatusCode();
|
||||
string userJson = await response.Content.ReadAsStringAsync();
|
||||
JObject jactiveUser = JObject.Parse(userJson);
|
||||
var username = jactiveUser["UserName"].Value<string>();
|
||||
var roles = jactiveUser["Roles"].Values<string>().ToList();
|
||||
var emails = jactiveUser["EMails"].Values<string>().ToList();
|
||||
var avatar = jactiveUser["Avatar"].Value<string>();
|
||||
var address = jactiveUser["Avatar"].Value<string>();
|
||||
var me = MainSettings.CurrentUser;
|
||||
me.Address = address;
|
||||
me.Avatar = avatar;
|
||||
me.EMails = emails;
|
||||
me.UserName = username;
|
||||
me.Roles = roles;
|
||||
MainSettings.SaveUser(me);
|
||||
}
|
||||
}
|
||||
}
|
||||
IsBusy = false;
|
||||
}
|
||||
IsBusy = false;
|
||||
|
||||
}
|
||||
|
||||
public void OnManageFiles(object sender, EventArgs e)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue