Пример #1
0
        bool  CheckPermission()
        {
            bool permissionGranted = false;

            if (ActivityCompat.CheckSelfPermission(this, Manifest.Permission.AccessCoarseLocation) != Android.Content.PM.Permission.Granted &&
                ActivityCompat.CheckSelfPermission(this, Manifest.Permission.AccessFineLocation) != Android.Content.PM.Permission.Granted)
            {
                permissionGranted = false;
            }
            else
            {
                permissionGranted = true;
            }
            return(permissionGranted);
        }
 void RequestLocationPermission()
 {
     try
     {
         if (ContextCompat.CheckSelfPermission(ApplicationContext, Manifest.Permission_group.Location) != Permission.Granted)
         {
             if (ActivityCompat.ShouldShowRequestPermissionRationale(this, Manifest.Permission_group.Location))
             {
                 RunOnUiThread(() =>
                 {
                     Snackbar.Make(layout, "Location access is required for this app.", Snackbar.LengthIndefinite)
                     .SetAction("OK", v => RequestPermissions(PERMISSIONS_LOCATION, REQUEST_LOCATIONS)).Show();
                     return;
                 });
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine($"ex = {ex.Message}");
     }
 }
Пример #3
0
        protected override async void OnCreate(Bundle bundle)
        {
            RequestWindowFeature(WindowFeatures.NoTitle);
            CurrentTheme  = Settings.SelectedTheme;
            CurrentAccent = AndroidColourThemeHelper.CurrentTheme;
            SetRightTheme();
            ResourceExtension.Init();
            base.OnCreate(bundle);
            if (Resources.DisplayMetrics.WidthPixels >= 1080)
            {
                Settings.MakeGridItemsSmaller = true;
            }

            AnimeListPageFragment.RightDrawer = null;
            if (!_addedNavHandlers)
            {
                RegisterIoC();
                SetContentView(Resource.Layout.MainPage);
                InitAdContainer();
                InitBindings();
                ViewModel.MainNavigationRequested += ViewModelOnMainNavigationRequested;
                ViewModel.MainNavigationRequested += ViewModelOnMainNavigationRequestedFirst;
                ViewModel.MediaElementCollapsed   += ViewModelOnMediaElementCollapsed;

                ViewModelLocator.AnimeList.DimensionsProvider = this;

                var args = Intent.Extras?.GetString("launchArgs") ?? Intent.Data?.ToString();
                ProcessLaunchArgs(args, true);
                ViewModel.PerformFirstNavigation();

                DroppyMenuPopup.RequestedElevation = DimensionsHelper.DpToPx(10);

                ResourceLocator.NotificationsTaskManager.StartTask(BgTasks.Notifications);


                //if ((Resources.Configuration.ScreenLayout & ScreenLayout.SizeMask) == ScreenLayout.SizeSmall)
                //{
                //    Settings.PullHigherQualityImages = false;
                //}


                DroppyMenuPopup.OverrideRequested +=
                    (sender, action) => ViewModelLocator.NavMgr.RegisterOneTimeMainOverride(new RelayCommand(action));
                DroppyMenuPopup.ResetOverrideRequested +=
                    (sender, eventArgs) => ViewModelLocator.NavMgr.ResetOneTimeOverride();

                //Check permissions
                var requiredPermission = new List <string>();
                if (ContextCompat.CheckSelfPermission(this,
                                                      Manifest.Permission.ReadExternalStorage)
                    != Permission.Granted)
                {
                    requiredPermission.Add(Manifest.Permission.ReadExternalStorage);
                }

                if (ContextCompat.CheckSelfPermission(this,
                                                      Manifest.Permission.WriteExternalStorage)
                    != Permission.Granted)
                {
                    requiredPermission.Add(Manifest.Permission.WriteExternalStorage);
                }

                if (requiredPermission.Any())
                {
                    ActivityCompat.RequestPermissions(this,
                                                      requiredPermission.ToArray(), 129055);
                }
                _addedNavHandlers = true;
            }

            if (!_staticInitPerformed)
            {
                StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().PermitAll().Build();
                StrictMode.SetThreadPolicy(policy);

                InitializationRoutines.InitPostUpdate();

                await Task.Delay(1000);

                if (ResourceLocator.ChangelogProvider.NewChangelog)
                {
                    ChangelogDialog.BuildChangelogDialog(ResourceLocator.ChangelogProvider);
                }

                RateReminderPopUp.ProcessRatePopUp();

                MemoryWatcher.Watcher.Resume(true);
                ResourceLocator.TelemetryProvider.Init();

                _staticInitPerformed = true;
            }
        }
Пример #4
0
        /// <summary>
        /// 检查权限是否存在拒绝不再提示
        /// </summary>
        internal virtual bool ShouldShowRequestPermissionRationale(Activity activity, string permission)
        {
            bool shouldShowRational = ActivityCompat.ShouldShowRequestPermissionRationale(activity, permission);

            return(shouldShowRational);
        }
Пример #5
0
 /// <summary>
 /// 向系统请求权限
 /// </summary>
 internal virtual void RequestPermissions(Activity activity, string[] permissions, int requestCode)
 {
     ActivityCompat.RequestPermissions(activity, permissions, requestCode);
 }