コード例 #1
0
        public FingerprintService(
            FragmentActivity fragmentActivity,
            Context applicationContext,
            IObservable <Unit> applicationActivated,
            CoreDispatcher dispatcher,
            IScheduler backgroundScheduler,
            FuncAsync <BiometricPrompt.PromptInfo> promptInfoBuilder)
        {
            fragmentActivity.Validation().NotNull(nameof(fragmentActivity));
            applicationActivated.Validation().NotNull(nameof(applicationActivated));
            backgroundScheduler.Validation().NotNull(nameof(backgroundScheduler));
            _dispatcher        = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher));
            _promptInfoBuilder = promptInfoBuilder ?? throw new ArgumentNullException(nameof(promptInfoBuilder));

            var executor = ContextCompat.GetMainExecutor(applicationContext);
            var callback = new AuthenticationCallback(OnAuthenticationSucceeded, OnAuthenticationFailed, OnAuthenticationError);

            _BiometricPrompt  = new BiometricPrompt(fragmentActivity, executor, callback);
            _BiometricManager = BiometricManager.From(Application.Context);

            _keyStore = KeyStore.GetInstance(ANDROID_KEYSTORE);
            _keyStore.Load(null);

            _canAuthenticate =
                applicationActivated
                .ObserveOn(backgroundScheduler)
                .StartWith(backgroundScheduler, Unit.Default)
                .Select(_ => _BiometricManager.CanAuthenticate())
                .Replay(1, backgroundScheduler)
                .RefCount();
        }
コード例 #2
0
 public static IObservable <TRet> ContinueAfter <T, TRet>(this IObservable <T> observable, Func <IObservable <TRet> > selector, System.Reactive.Concurrency.IScheduler scheduler)
 {
     return(observable.AsCompletion <T>().ObserveOn(scheduler).SelectMany((Unit _) => selector()));
 }
コード例 #3
0
 public static System.IObservable <TSource> Expand <TSource>(this System.IObservable <TSource> source, System.Func <TSource, System.IObservable <TSource> > selector, System.Reactive.Concurrency.IScheduler scheduler)
 {
     throw null;
 }
コード例 #4
0
 public static System.Reactive.Concurrency.SchedulerOperation Yield(this System.Reactive.Concurrency.IScheduler scheduler, System.Threading.CancellationToken cancellationToken)
 {
     throw null;
 }
コード例 #5
0
 public static System.Reactive.Concurrency.IStopwatch StartStopwatch(this System.Reactive.Concurrency.IScheduler scheduler)
 {
     throw null;
 }
コード例 #6
0
 public static System.Reactive.Concurrency.SchedulerOperation Sleep(this System.Reactive.Concurrency.IScheduler scheduler, System.TimeSpan dueTime)
 {
     throw null;
 }
コード例 #7
0
 public static System.IDisposable SchedulePeriodic <TState>(this System.Reactive.Concurrency.IScheduler scheduler, TState state, System.TimeSpan period, System.Func <TState, TState> action)
 {
     throw null;
 }
コード例 #8
0
 public static System.IDisposable ScheduleAsync <TState>(this System.Reactive.Concurrency.IScheduler scheduler, TState state, System.TimeSpan dueTime, System.Func <System.Reactive.Concurrency.IScheduler, TState, System.Threading.CancellationToken, System.Threading.Tasks.Task> action)
 {
     throw null;
 }
コード例 #9
0
 public static System.IObserver <T> NotifyOn <T>(this System.IObserver <T> observer, System.Reactive.Concurrency.IScheduler scheduler)
 {
     throw null;
 }
コード例 #10
0
 public ScheduledDisposable(System.Reactive.Concurrency.IScheduler scheduler, System.IDisposable disposable)
 {
 }
コード例 #11
0
ファイル: Dependencies.cs プロジェクト: mrjpeterj/JMail
 static Dependencies()
 {
     TimeScheduler = System.Reactive.Concurrency.DefaultScheduler.Instance;
 }
コード例 #12
0
 internal static IObservable <T> ThrottleFirst <T>(this IObservable <T> source, TimeSpan delay, System.Reactive.Concurrency.IScheduler scheduler)
 {
     return(source.Publish(o => o.Take(1)
                           .Concat(o.IgnoreElements().TakeUntil(Observable.Return(default(T)).Delay(delay, scheduler)))
                           .Repeat()
                           .TakeUntil(o.IgnoreElements().Concat(Observable.Return(default(T))))));
 }
コード例 #13
0
        public IObservable <IList <string> > ReadXsvAsObservable(ICollection <string> delimiters, System.Reactive.Concurrency.IScheduler scheduler)
        {
            if (scheduler == null)
            {
                scheduler = System.Reactive.Concurrency.ThreadPoolScheduler.Instance;
            }

            return(Observable.Create <IList <string> >(observer =>
            {
                CancellationTokenSource cts = new CancellationTokenSource();
                var disposable = Observable.Start(() =>
                {
                    var line = 1;
                    try
                    {
                        while (!EndOfData)
                        {
                            if (cts.IsCancellationRequested)
                            {
                                break;
                            }

                            var row = ReadXsvLine(delimiters).ToList();
                            observer.OnNext(row);
                            line++;
                        }
                        observer.OnCompleted();
                    }
                    catch (Exception e)
                    {
                        observer.OnError(new XsvReaderException(line, e.Message, e));
                    }
                }, scheduler).Subscribe(_ => { }, observer.OnError, observer.OnCompleted);

                return new CompositeDisposable(disposable, new CancellationDisposable(cts));
            }));
        }
コード例 #14
0
 public ReactiveCommandDecorator(IObservable <bool> canExecute, Func <object, IObservable <T> > executeAsync, System.Reactive.Concurrency.IScheduler scheduler) : base(canExecute, executeAsync, scheduler)
 {
 }
コード例 #15
0
 public static System.IDisposable Schedule(this System.Reactive.Concurrency.IScheduler scheduler, System.DateTimeOffset dueTime, System.Action <System.Action <System.DateTimeOffset> > action)
 {
     throw null;
 }
コード例 #16
0
 public static System.IDisposable ScheduleAsync(this System.Reactive.Concurrency.IScheduler scheduler, System.Func <System.Reactive.Concurrency.IScheduler, System.Threading.CancellationToken, System.Threading.Tasks.Task <System.IDisposable> > action)
 {
     throw null;
 }
コード例 #17
0
 public static System.Reactive.Concurrency.ISchedulerLongRunning AsLongRunning(this System.Reactive.Concurrency.IScheduler scheduler)
 {
     throw null;
 }
コード例 #18
0
 public static System.IDisposable SchedulePeriodic(this System.Reactive.Concurrency.IScheduler scheduler, System.TimeSpan period, System.Action action)
 {
     throw null;
 }
コード例 #19
0
 public static System.Reactive.Concurrency.ISchedulerPeriodic AsPeriodic(this System.Reactive.Concurrency.IScheduler scheduler)
 {
     throw null;
 }
コード例 #20
0
 public static System.IDisposable Schedule <TState>(this System.Reactive.Concurrency.IScheduler scheduler, TState state, System.TimeSpan dueTime, System.Action <TState, System.Action <TState, System.TimeSpan> > action)
 {
     throw null;
 }
コード例 #21
0
 public static System.Reactive.Concurrency.IStopwatchProvider AsStopwatchProvider(this System.Reactive.Concurrency.IScheduler scheduler)
 {
     throw null;
 }
コード例 #22
0
 public static System.Reactive.Concurrency.SchedulerOperation Sleep(this System.Reactive.Concurrency.IScheduler scheduler, System.TimeSpan dueTime, System.Threading.CancellationToken cancellationToken)
 {
     throw null;
 }
コード例 #23
0
 public static System.Reactive.Concurrency.IScheduler Catch <TException>(this System.Reactive.Concurrency.IScheduler scheduler, System.Func <TException, bool> handler) where TException : System.Exception
 {
     throw null;
 }
コード例 #24
0
 public static System.Reactive.Concurrency.SchedulerOperation Yield(this System.Reactive.Concurrency.IScheduler scheduler)
 {
     throw null;
 }
コード例 #25
0
 public static System.Reactive.Concurrency.IScheduler DisableOptimizations(this System.Reactive.Concurrency.IScheduler scheduler)
 {
     throw null;
 }
コード例 #26
0
 public static System.IObservable <TSource> SubscribeOn <TSource>(System.IObservable <TSource> source, System.Reactive.Concurrency.IScheduler scheduler)
 {
     throw null;
 }
コード例 #27
0
 public static System.Reactive.Concurrency.IScheduler DisableOptimizations(this System.Reactive.Concurrency.IScheduler scheduler, params System.Type[] optimizationInterfaces)
 {
     throw null;
 }
コード例 #28
0
 public static System.Reactive.Linq.IQbservable <TResult> ManySelect <TSource, TResult>(this System.Reactive.Linq.IQbservable <TSource> source, System.Linq.Expressions.Expression <System.Func <System.IObservable <TSource>, TResult> > selector, System.Reactive.Concurrency.IScheduler scheduler)
 {
     throw null;
 }
コード例 #29
0
 public static System.IDisposable Schedule(this System.Reactive.Concurrency.IScheduler scheduler, System.Action <System.Action> action)
 {
     throw null;
 }