Esempio n. 1
0
        public static Task UnregisterProbeAsync(AndroidAccessibilityProbe probe)
        {
            lock (_probes)
            {
                _probes.Remove(probe);
            }

            return(Task.CompletedTask);
        }
Esempio n. 2
0
        public static async Task RegisterProbeAsync(AndroidAccessibilityProbe probe)
        {
            lock (_probes)
            {
                if (probe != null && _probes.Contains(probe) == false)
                {
                    _probes.Add(probe);
                }
            }

            if (IsServiceEnabled() == false)
            //while (IsServiceEnabled() == false)
            {
                bool continueStarting = await SensusContext.Current.MainThreadSynchronizer.ExecuteThreadSafe(async() =>
                {
                    return(await XamarinApp.Current.MainPage.DisplayAlert("Permission Request", "Please enable the Accessibility Service permission for Sensus", "OK", "Cancel"));
                });

                if (continueStarting)
                {
                    Intent accessibilitySettings = new Intent(Settings.ActionAccessibilitySettings);
                    accessibilitySettings.AddFlags(ActivityFlags.NewTask);
                    Application.Context.StartActivity(accessibilitySettings);

                    //AndroidSensusServiceHelper serviceHelper = SensusServiceHelper.Get() as AndroidSensusServiceHelper;

                    //_cancellationTokenSource = new CancellationTokenSource();

                    //serviceHelper.WaitForFocus(_cancellationTokenSource.Token);

                    //_cancellationTokenSource.Dispose();
                    //_cancellationTokenSource = null;
                }
                else
                {
                    probe.Protocol.CancelStart();

                    return;
                }
            }
        }