public LoginViewModel( ILoginManager loginManager, IOnboardingStorage onboardingStorage, IMvxNavigationService navigationService, IPasswordManagerService passwordManagerService, IApiErrorHandlingService apiErrorHandlingService, IAnalyticsService analyticsService) { Ensure.Argument.IsNotNull(loginManager, nameof(loginManager)); Ensure.Argument.IsNotNull(onboardingStorage, nameof(onboardingStorage)); Ensure.Argument.IsNotNull(navigationService, nameof(navigationService)); Ensure.Argument.IsNotNull(passwordManagerService, nameof(passwordManagerService)); Ensure.Argument.IsNotNull(apiErrorHandlingService, nameof(apiErrorHandlingService)); Ensure.Argument.IsNotNull(analyticsService, nameof(analyticsService)); this.loginManager = loginManager; this.onboardingStorage = onboardingStorage; this.navigationService = navigationService; this.passwordManagerService = passwordManagerService; this.apiErrorHandlingService = apiErrorHandlingService; this.analyticsService = analyticsService; BackCommand = new MvxCommand(back); NextCommand = new MvxCommand(next, () => NextIsEnabled); GoogleLoginCommand = new MvxCommand(googleLogin); ForgotPasswordCommand = new MvxCommand(forgotPassword); OpenPrivacyPolicyCommand = new MvxCommand(openPrivacyPolicyCommand); OpenTermsOfServiceCommand = new MvxCommand(openTermsOfServiceCommand); StartPasswordManagerCommand = new MvxAsyncCommand(startPasswordManager, () => IsPasswordManagerAvailable); TogglePasswordVisibilityCommand = new MvxCommand(togglePasswordVisibility); ChangeSignUpToLoginCommand = new MvxCommand(changeSignUpToLogin, () => IsSignUp); }
public LoginViewModel( ILoginManager loginManager, IAnalyticsService analyticsService, IOnboardingStorage onboardingStorage, IMvxNavigationService navigationService, IPasswordManagerService passwordManagerService, IErrorHandlingService errorHandlingService) { Ensure.Argument.IsNotNull(loginManager, nameof(loginManager)); Ensure.Argument.IsNotNull(analyticsService, nameof(analyticsService)); Ensure.Argument.IsNotNull(onboardingStorage, nameof(onboardingStorage)); Ensure.Argument.IsNotNull(navigationService, nameof(navigationService)); Ensure.Argument.IsNotNull(passwordManagerService, nameof(passwordManagerService)); Ensure.Argument.IsNotNull(errorHandlingService, nameof(errorHandlingService)); this.loginManager = loginManager; this.analyticsService = analyticsService; this.onboardingStorage = onboardingStorage; this.navigationService = navigationService; this.passwordManagerService = passwordManagerService; this.errorHandlingService = errorHandlingService; SignupCommand = new MvxAsyncCommand(signup); GoogleLoginCommand = new MvxCommand(googleLogin); LoginCommand = new MvxCommand(login, () => LoginEnabled); ForgotPasswordCommand = new MvxAsyncCommand(forgotPassword); TogglePasswordVisibilityCommand = new MvxCommand(togglePasswordVisibility); StartPasswordManagerCommand = new MvxAsyncCommand(startPasswordManager, () => IsPasswordManagerAvailable); }
public static FoundationMvvmCross RegisterServices(this Foundation self, IDialogService dialogService, IBrowserService browserService, IKeyValueStorage keyValueStorage, IAccessRestrictionStorage accessRestrictionStorage, IUserPreferences userPreferences, IOnboardingStorage onboardingStorage, IMvxNavigationService navigationService, IPasswordManagerService passwordManagerService = null) { Ensure.Argument.IsNotNull(self, nameof(self)); Ensure.Argument.IsNotNull(dialogService, nameof(dialogService)); Ensure.Argument.IsNotNull(browserService, nameof(browserService)); Ensure.Argument.IsNotNull(keyValueStorage, nameof(keyValueStorage)); Ensure.Argument.IsNotNull(accessRestrictionStorage, nameof(accessRestrictionStorage)); Ensure.Argument.IsNotNull(userPreferences, nameof(userPreferences)); Ensure.Argument.IsNotNull(onboardingStorage, nameof(onboardingStorage)); Ensure.Argument.IsNotNull(navigationService, nameof(navigationService)); var timeService = self.TimeService; var apiErrorHandlingService = new ApiErrorHandlingService(navigationService, accessRestrictionStorage); Mvx.RegisterSingleton(self.BackgroundService); Mvx.RegisterSingleton(dialogService); Mvx.RegisterSingleton(self.Database); Mvx.RegisterSingleton(browserService); Mvx.RegisterSingleton(self.UserAgent); Mvx.RegisterSingleton(self.TimeService); Mvx.RegisterSingleton(self.Scheduler); Mvx.RegisterSingleton(self.ShortcutCreator); Mvx.RegisterSingleton(self.MailService); Mvx.RegisterSingleton(self.ShortcutCreator); Mvx.RegisterSingleton(self.AnalyticsService); Mvx.RegisterSingleton(self.PlatformConstants); Mvx.RegisterSingleton(self.Database.IdProvider); Mvx.RegisterSingleton(self.SuggestionProviderContainer); Mvx.RegisterSingleton(userPreferences); Mvx.RegisterSingleton(onboardingStorage); Mvx.RegisterSingleton(accessRestrictionStorage); Mvx.RegisterSingleton <IApiErrorHandlingService>(apiErrorHandlingService); Mvx.RegisterSingleton(passwordManagerService ?? new StubPasswordManagerService()); Mvx.LazyConstructAndRegisterSingleton <IInteractorFactory, InteractorFactory>(); return(new FoundationMvvmCross( self.ApiFactory, self.Database, timeService, self.Scheduler, self.AnalyticsService, self.GoogleService, self.ShortcutCreator, self.BackgroundService, onboardingStorage, accessRestrictionStorage, navigationService, apiErrorHandlingService)); }
public LoginViewModel(ILoginManager loginManager, IMvxNavigationService navigationService, IPasswordManagerService passwordManagerService) { Ensure.Argument.IsNotNull(loginManager, nameof(loginManager)); Ensure.Argument.IsNotNull(navigationService, nameof(navigationService)); Ensure.Argument.IsNotNull(passwordManagerService, nameof(passwordManagerService)); this.loginManager = loginManager; this.navigationService = navigationService; this.passwordManagerService = passwordManagerService; BackCommand = new MvxCommand(back); NextCommand = new MvxCommand(next); StartPasswordManagerCommand = new MvxCommand(startPasswordManager); TogglePasswordVisibilityCommand = new MvxCommand(togglePasswordVisibility); }
public Builder WithPasswordManagerService(IPasswordManagerService passwordManagerService) { PasswordManagerService = passwordManagerService; return(this); }
public LoginViewModel( ILoginManager loginManager, IAnalyticsService analyticsService, IOnboardingStorage onboardingStorage, IForkingNavigationService navigationService, IPasswordManagerService passwordManagerService, IErrorHandlingService errorHandlingService, ILastTimeUsageStorage lastTimeUsageStorage, ITimeService timeService, ISchedulerProvider schedulerProvider) { Ensure.Argument.IsNotNull(loginManager, nameof(loginManager)); Ensure.Argument.IsNotNull(analyticsService, nameof(analyticsService)); Ensure.Argument.IsNotNull(onboardingStorage, nameof(onboardingStorage)); Ensure.Argument.IsNotNull(navigationService, nameof(navigationService)); Ensure.Argument.IsNotNull(passwordManagerService, nameof(passwordManagerService)); Ensure.Argument.IsNotNull(errorHandlingService, nameof(errorHandlingService)); Ensure.Argument.IsNotNull(lastTimeUsageStorage, nameof(lastTimeUsageStorage)); Ensure.Argument.IsNotNull(timeService, nameof(timeService)); Ensure.Argument.IsNotNull(schedulerProvider, nameof(schedulerProvider)); this.timeService = timeService; this.loginManager = loginManager; this.analyticsService = analyticsService; this.onboardingStorage = onboardingStorage; this.navigationService = navigationService; this.errorHandlingService = errorHandlingService; this.lastTimeUsageStorage = lastTimeUsageStorage; this.passwordManagerService = passwordManagerService; this.schedulerProvider = schedulerProvider; var emailObservable = emailSubject.Select(email => email.TrimmedEnd()); Shake = shakeSubject.AsDriver(this.schedulerProvider); Email = emailObservable .Select(email => email.ToString()) .DistinctUntilChanged() .AsDriver(this.schedulerProvider); Password = passwordSubject .Select(password => password.ToString()) .DistinctUntilChanged() .AsDriver(this.schedulerProvider); IsLoading = isLoadingSubject .DistinctUntilChanged() .AsDriver(this.schedulerProvider); ErrorMessage = errorMessageSubject .DistinctUntilChanged() .AsDriver(this.schedulerProvider); IsPasswordMasked = isPasswordMaskedSubject .DistinctUntilChanged() .AsDriver(this.schedulerProvider); IsShowPasswordButtonVisible = Password .Select(password => password.Length > 1) .CombineLatest(isShowPasswordButtonVisibleSubject.AsObservable(), CommonFunctions.And) .DistinctUntilChanged() .AsDriver(this.schedulerProvider); HasError = ErrorMessage .Select(string.IsNullOrEmpty) .Select(CommonFunctions.Invert) .AsDriver(this.schedulerProvider); LoginEnabled = emailObservable .CombineLatest( passwordSubject.AsObservable(), IsLoading, (email, password, isLoading) => email.IsValid && password.IsValid && !isLoading) .DistinctUntilChanged() .AsDriver(this.schedulerProvider); IsPasswordManagerAvailable = passwordManagerService.IsAvailable; }