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