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; } }
/// <summary> /// 向系统请求权限 /// </summary> internal virtual void RequestPermissions(Activity activity, string[] permissions, int requestCode) { ActivityCompat.RequestPermissions(activity, permissions, requestCode); }