コード例 #1
0
        private void LaunchLoginSsoFlow()
        {
            var loginPage = new LoginSsoPage();
            var app       = new App.App(new AppOptions {
                IosExtension = true
            });

            ThemeManager.SetTheme(false, app.Resources);
            ThemeManager.ApplyResourcesToPage(loginPage);
            if (loginPage.BindingContext is LoginSsoPageViewModel vm)
            {
                vm.StartTwoFactorAction     = () => DismissViewController(false, () => LaunchTwoFactorFlow(true));
                vm.StartSetPasswordAction   = () => DismissViewController(false, () => LaunchSetPasswordFlow());
                vm.UpdateTempPasswordAction = () => DismissViewController(false, () => LaunchUpdateTempPasswordFlow());
                vm.SsoAuthSuccessAction     = () => DismissLockAndContinue();
                vm.CloseAction = () => DismissViewController(false, () => LaunchHomePage());
            }

            var navigationPage  = new NavigationPage(loginPage);
            var loginController = navigationPage.CreateViewController();

            loginController.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            PresentViewController(loginController, true, null);

            LogoutIfAuthed();
        }
コード例 #2
0
        private void LaunchTwoFactorFlow(bool authingWithSso)
        {
            var twoFactorPage = new TwoFactorPage(authingWithSso);
            var app           = new App.App(new AppOptions {
                IosExtension = true
            });

            ThemeManager.SetTheme(false, app.Resources);
            ThemeManager.ApplyResourcesToPage(twoFactorPage);
            if (twoFactorPage.BindingContext is TwoFactorPageViewModel vm)
            {
                vm.TwoFactorAuthSuccessAction = () => DismissLockAndContinue();
                vm.StartSetPasswordAction     = () => DismissViewController(false, () => LaunchSetPasswordFlow());
                if (authingWithSso)
                {
                    vm.CloseAction = () => DismissViewController(false, () => LaunchLoginSsoFlow());
                }
                else
                {
                    vm.CloseAction = () => DismissViewController(false, () => LaunchLoginFlow());
                }
            }

            var navigationPage      = new NavigationPage(twoFactorPage);
            var twoFactorController = navigationPage.CreateViewController();

            twoFactorController.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            PresentViewController(twoFactorController, true, null);
        }
コード例 #3
0
        private void LaunchHomePage()
        {
            var homePage = new HomePage();
            var app      = new App.App(new AppOptions {
                IosExtension = true
            });

            ThemeManager.SetTheme(false, app.Resources);
            ThemeManager.ApplyResourcesToPage(homePage);
            if (homePage.BindingContext is HomeViewModel vm)
            {
                vm.StartLoginAction       = () => DismissViewController(false, () => LaunchLoginFlow());
                vm.StartRegisterAction    = () => DismissViewController(false, () => LaunchRegisterFlow());
                vm.StartSsoLoginAction    = () => DismissViewController(false, () => LaunchLoginSsoFlow());
                vm.StartEnvironmentAction = () => DismissViewController(false, () => LaunchEnvironmentFlow());
                vm.CloseAction            = () => CompleteRequest();
            }

            var navigationPage  = new NavigationPage(homePage);
            var loginController = navigationPage.CreateViewController();

            loginController.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            PresentViewController(loginController, true, null);

            LogoutIfAuthed();
        }
コード例 #4
0
        private void LaunchUpdateTempPasswordFlow()
        {
            var updateTempPasswordPage = new UpdateTempPasswordPage();
            var app = new App.App(new AppOptions { IosExtension = true });
            ThemeManager.SetTheme(app.Resources);
            ThemeManager.ApplyResourcesToPage(updateTempPasswordPage);
            if (updateTempPasswordPage.BindingContext is UpdateTempPasswordPageViewModel vm)
            {
                vm.UpdateTempPasswordSuccessAction = () => DismissViewController(false, () => LaunchHomePage());
                vm.LogOutAction = () => DismissViewController(false, () => LaunchHomePage());
            }

            var navigationPage = new NavigationPage(updateTempPasswordPage);
            var updateTempPasswordController = navigationPage.CreateViewController();
            updateTempPasswordController.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            PresentViewController(updateTempPasswordController, true, null);
        }
コード例 #5
0
        private void LaunchRegisterFlow()
        {
            var registerPage = new RegisterPage(null);
            var app = new App.App(new AppOptions { IosExtension = true });
            ThemeManager.SetTheme(app.Resources);
            ThemeManager.ApplyResourcesToPage(registerPage);
            if (registerPage.BindingContext is RegisterPageViewModel vm)
            {
                vm.RegistrationSuccess = () => DismissViewController(false, () => LaunchLoginFlow(vm.Email));
                vm.CloseAction = () => DismissViewController(false, () => LaunchHomePage());
            }

            var navigationPage = new NavigationPage(registerPage);
            var loginController = navigationPage.CreateViewController();
            loginController.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            PresentViewController(loginController, true, null);
        }
コード例 #6
0
        private void LaunchEnvironmentFlow()
        {
            var environmentPage = new EnvironmentPage();
            var app = new App.App(new AppOptions { IosExtension = true });
            ThemeManager.SetTheme(app.Resources);
            ThemeManager.ApplyResourcesToPage(environmentPage);
            if (environmentPage.BindingContext is EnvironmentPageViewModel vm)
            {
                vm.SubmitSuccessAction = () => DismissViewController(false, () => LaunchHomePage());
                vm.CloseAction = () => DismissViewController(false, () => LaunchHomePage());
            }

            var navigationPage = new NavigationPage(environmentPage);
            var loginController = navigationPage.CreateViewController();
            loginController.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            PresentViewController(loginController, true, null);
        }
コード例 #7
0
        private void LaunchSetPasswordFlow()
        {
            var setPasswordPage = new SetPasswordPage();
            var app             = new App.App(new AppOptions {
                IosExtension = true
            });

            ThemeManager.SetTheme(false, app.Resources);
            ThemeManager.ApplyResourcesToPage(setPasswordPage);
            if (setPasswordPage.BindingContext is SetPasswordPageViewModel vm)
            {
                vm.SetPasswordSuccessAction = () => DismissLockAndContinue();
                vm.CloseAction = () => DismissViewController(false, () => LaunchHomePage());
            }

            var navigationPage        = new NavigationPage(setPasswordPage);
            var setPasswordController = navigationPage.CreateViewController();

            setPasswordController.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            PresentViewController(setPasswordController, true, null);
        }
コード例 #8
0
        public void PromptSSO()
        {
            var loginPage = new LoginSsoPage();
            var app       = new App.App(new AppOptions {
                IosExtension = true
            });

            ThemeManager.SetTheme(app.Resources);
            ThemeManager.ApplyResourcesToPage(loginPage);
            if (loginPage.BindingContext is LoginSsoPageViewModel vm)
            {
                vm.SsoAuthSuccessAction = () => DoContinue();
                vm.CloseAction          = Cancel;
            }

            var navigationPage  = new NavigationPage(loginPage);
            var loginController = navigationPage.CreateViewController();

            loginController.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            PresentViewController(loginController, true, null);
        }
コード例 #9
0
        private void LaunchLoginFlow(string email = null)
        {
            var loginPage = new LoginPage(email);
            var app       = new App.App(new AppOptions {
                IosExtension = true
            });

            ThemeManager.SetTheme(false, app.Resources);
            ThemeManager.ApplyResourcesToPage(loginPage);
            if (loginPage.BindingContext is LoginPageViewModel vm)
            {
                vm.StartTwoFactorAction = () => DismissViewController(false, () => LaunchTwoFactorFlow(false));
                vm.LogInSuccessAction   = () => DismissLockAndContinue();
                vm.CloseAction          = () => DismissViewController(false, () => LaunchHomePage());
            }

            var navigationPage  = new NavigationPage(loginPage);
            var loginController = navigationPage.CreateViewController();

            loginController.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            PresentViewController(loginController, true, null);
        }
コード例 #10
0
        private async Task ContinueOnAsync()
        {
            Tuple <SendType, string, byte[], string> createSend = null;

            if (_context.ProviderType == UTType.Data)
            {
                var(filename, fileBytes) = await LoadDataBytesAsync();

                createSend = new Tuple <SendType, string, byte[], string>(SendType.File, filename, fileBytes, null);
            }
            else if (_context.ProviderType == UTType.PlainText)
            {
                createSend = new Tuple <SendType, string, byte[], string>(SendType.Text, null, null, LoadText());
            }

            var appOptions = new AppOptions
            {
                IosExtension = true,
                CreateSend   = createSend,
                CopyInsteadOfShareAfterSaving = true
            };
            var sendAddEditPage = new SendAddEditPage(appOptions)
            {
                OnClose     = () => CompleteRequest(),
                AfterSubmit = () => CompleteRequest()
            };

            var app = new App.App(appOptions);

            ThemeManager.SetTheme(app.Resources);
            ThemeManager.ApplyResourcesToPage(sendAddEditPage);

            var navigationPage        = new NavigationPage(sendAddEditPage);
            var sendAddEditController = navigationPage.CreateViewController();

            sendAddEditController.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
            PresentViewController(sendAddEditController, true, null);
        }