From 120496cc32392d45393352c8a22e1380b26433a7 Mon Sep 17 00:00:00 2001 From: Dillon Buchanan Date: Wed, 16 Apr 2014 00:17:01 -0400 Subject: [PATCH] Beter Startup View --- .../ViewModels/App/StartupViewModel.cs | 125 +++++++++--------- CodeHub.iOS/CodeHub.iOS.csproj | 2 + CodeHub.iOS/Images/Images.cs | 3 + CodeHub.iOS/Images/login_user_unknown.png | Bin 0 -> 6127 bytes CodeHub.iOS/Images/login_user_unknown@2x.png | Bin 0 -> 9149 bytes CodeHub.iOS/Theme.cs | 2 + lib/CodeFramework | 2 +- 7 files changed, 73 insertions(+), 61 deletions(-) create mode 100644 CodeHub.iOS/Images/login_user_unknown.png create mode 100644 CodeHub.iOS/Images/login_user_unknown@2x.png diff --git a/CodeHub.Core/ViewModels/App/StartupViewModel.cs b/CodeHub.Core/ViewModels/App/StartupViewModel.cs index c72d1092..9b55d6d4 100644 --- a/CodeHub.Core/ViewModels/App/StartupViewModel.cs +++ b/CodeHub.Core/ViewModels/App/StartupViewModel.cs @@ -4,83 +4,88 @@ using CodeHub.Core.Services; using System.Linq; using CodeHub.Core.Factories; -using System.Threading.Tasks; namespace CodeHub.Core.ViewModels.App { - public class StartupViewModel : BaseStartupViewModel + public class StartupViewModel : BaseStartupViewModel { private readonly ILoginFactory _loginFactory; - private readonly IApplicationService _applicationService; + private readonly IApplicationService _applicationService; public StartupViewModel(ILoginFactory loginFactory, IApplicationService applicationService) - { - _loginFactory = loginFactory; - _applicationService = applicationService; - } + { + _loginFactory = loginFactory; + _applicationService = applicationService; + } - protected async override void Startup() - { - if (!_applicationService.Accounts.Any()) - { - ShowViewModel(); - ShowViewModel(); - return; - } + protected async override void Startup() + { + if (!_applicationService.Accounts.Any()) + { + ShowViewModel(); + ShowViewModel(); + return; + } - var account = GetDefaultAccount() as GitHubAccount; - if (account == null) - { - ShowViewModel(); - return; - } + var account = GetDefaultAccount() as GitHubAccount; + if (account == null) + { + ShowViewModel(); + return; + } - var isEnterprise = account.IsEnterprise || !string.IsNullOrEmpty(account.Password); - if (account.DontRemember) - { - ShowViewModel(); + var isEnterprise = account.IsEnterprise || !string.IsNullOrEmpty(account.Password); + if (account.DontRemember) + { + ShowViewModel(); - //Hack for now - if (isEnterprise) - { - ShowViewModel(new Accounts.AddAccountViewModel.NavObject { IsEnterprise = true, AttemptedAccountId = account.Id }); - } - else - { - ShowViewModel(Accounts.LoginViewModel.NavObject.CreateDontRemember(account)); - } + //Hack for now + if (isEnterprise) + { + ShowViewModel(new Accounts.AddAccountViewModel.NavObject { IsEnterprise = true, AttemptedAccountId = account.Id }); + } + else + { + ShowViewModel(Accounts.LoginViewModel.NavObject.CreateDontRemember(account)); + } - return; - } + return; + } - //Lets login! - try - { - IsLoggingIn = true; - var client = await _loginFactory.LoginAccount(account); - _applicationService.ActivateUser(account, client); - } - catch (GitHubSharp.UnauthorizedException e) - { + //Lets login! + try + { + IsLoggingIn = true; + + Uri accountAvatarUri = null; + Uri.TryCreate(account.AvatarUrl, UriKind.Absolute, out accountAvatarUri); + ImageUrl = accountAvatarUri; + Status = "Logging in as " + account.Username; + + var client = await _loginFactory.LoginAccount(account); + _applicationService.ActivateUser(account, client); + } + catch (GitHubSharp.UnauthorizedException e) + { DisplayAlert("The credentials for the selected account are incorrect. " + e.Message); - ShowViewModel(); - if (isEnterprise) - ShowViewModel(new Accounts.AddAccountViewModel.NavObject { IsEnterprise = true, AttemptedAccountId = account.Id }); - else - ShowViewModel(Accounts.LoginViewModel.NavObject.CreateDontRemember(account)); - } - catch (Exception e) - { + ShowViewModel(); + if (isEnterprise) + ShowViewModel(new Accounts.AddAccountViewModel.NavObject { IsEnterprise = true, AttemptedAccountId = account.Id }); + else + ShowViewModel(Accounts.LoginViewModel.NavObject.CreateDontRemember(account)); + } + catch (Exception e) + { DisplayAlert(e.Message); - ShowViewModel(); - } - finally - { - IsLoggingIn = false; - } + ShowViewModel(); + } + finally + { + IsLoggingIn = false; + } - } + } } } diff --git a/CodeHub.iOS/CodeHub.iOS.csproj b/CodeHub.iOS/CodeHub.iOS.csproj index 247fedfa..3cdb27a4 100644 --- a/CodeHub.iOS/CodeHub.iOS.csproj +++ b/CodeHub.iOS/CodeHub.iOS.csproj @@ -434,6 +434,8 @@ + + diff --git a/CodeHub.iOS/Images/Images.cs b/CodeHub.iOS/Images/Images.cs index a5f36528..8b2eddc4 100755 --- a/CodeHub.iOS/Images/Images.cs +++ b/CodeHub.iOS/Images/Images.cs @@ -48,6 +48,9 @@ public static class Images public static UIImage Language { get { return UIImageHelper.FromFileAuto("Images/language"); } } public static UIImage Unlocked { get { return UIImageHelper.FromFileAuto("Images/unlocked"); } } public static UIImage Locked { get { return UIImageHelper.FromFileAuto("Images/locked"); } } + + public static UIImage LoginUserUnknown { get { return UIImageHelper.FromFileAuto("Images/login_user_unknown"); } } + public static Uri GitHubRepoUrl { diff --git a/CodeHub.iOS/Images/login_user_unknown.png b/CodeHub.iOS/Images/login_user_unknown.png new file mode 100644 index 0000000000000000000000000000000000000000..2814e9981ad048afe07b8b5955b09a62d97a259e GIT binary patch literal 6127 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 WC6igrHh+Jp(Nfb_eS60a^M3$Ef|~mP literal 0 HcmV?d00001 diff --git a/CodeHub.iOS/Theme.cs b/CodeHub.iOS/Theme.cs index 54896532..880e6cf5 100755 --- a/CodeHub.iOS/Theme.cs +++ b/CodeHub.iOS/Theme.cs @@ -164,5 +164,7 @@ public UIColor ApplicationNavigationBarTint } public float FontSizeRatio { get; set; } + + public UIImage LoginUserUnknown { get { return Images.LoginUserUnknown; } } } } diff --git a/lib/CodeFramework b/lib/CodeFramework index 8eb95065..e635eed0 160000 --- a/lib/CodeFramework +++ b/lib/CodeFramework @@ -1 +1 @@ -Subproject commit 8eb9506585d7182918498d304c2514ca410fb537 +Subproject commit e635eed0eb9e0492ec6ba5f4eb0a5c9513f376d8