WIP fixes startup (a first one ...)

vnext
Paul Schneider 8 years ago
parent 29b6d75086
commit 1840c869d6
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…