protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); AppTheme.SetThemeFullScreen(this); AppTheme.SetThemeNeedMenuKey(this); filter = this.Intent.GetStringExtra("filter"); Window.SetSoftInputMode(SoftInput.StateAlwaysHidden); pdfViewCtrl = new PDFViewCtrl(this); System.IO.Stream stream = Assets.Open("uiextensions_config.json"); Config config = new Config(stream); uiExtensionsManager = new UIExtensionsManager(this, pdfViewCtrl, config); uiExtensionsManager.AttachedActivity = this; uiExtensionsManager.RegisterModule(App.Instance().GetLocalModule(filter)); uiExtensionsManager.OnCreate(this, pdfViewCtrl, savedInstanceState); pdfViewCtrl.UIExtensionsManager = uiExtensionsManager; pdfViewCtrl.AttachedActivity = this; filePath = AppFileUtil.GetFilePath(this, this.Intent, HomeModule.FileExtra); uiExtensionsManager.OpenDocument(filePath, null); SetContentView(uiExtensionsManager.ContentView); }
protected override void OnNewIntent(Intent intent) { base.OnNewIntent(intent); filter = intent.GetStringExtra("filter"); filePath = AppFileUtil.GetFilePath(this, intent, HomeModule.FileExtra); this.Intent = intent; }
public void CopyGuideFiles(LocalModule localModule) { if (Environment.ExternalStorageState.Equals(Environment.MediaMounted)) { string curPath = AppStorageManager.GetInstance(mContext).DefaultFolder; if (!AppFileUtil.NeedScopedStorageAdaptation()) { curPath = AppFileUtil.DefaultDocumentDirectory; Java.IO.File file = new Java.IO.File(curPath); if (!file.Exists()) { if (!file.Mkdirs()) { return; } } Java.IO.File sampleFile = new Java.IO.File(curPath + Java.IO.File.Separator + "Sample.pdf"); if (!sampleFile.Exists()) { localModule.CopyFileFromAssertsToTargetFile(sampleFile); } Java.IO.File guideFile = new Java.IO.File(curPath + Java.IO.File.Separator + "complete_pdf_viewer_guide_android.pdf"); if (!guideFile.Exists()) { localModule.CopyFileFromAssertsToTargetFile(guideFile); } } else if (!TextUtils.IsEmpty(curPath)) { Uri uri = AppFileUtil.ToDocumentUriFromPath(curPath); if (AppFileUtil.IsDocumentTreeUri(uri)) { DocumentFile directory = AppStorageManager.GetInstance(mContext).GetExistingDocumentFile(uri); if (directory == null) { return; } string fileName = "Sample.pdf"; DocumentFile file = directory.FindFile(fileName); if (file == null) { file = directory.CreateFile(AppFileUtil.GetMimeType(fileName), fileName); localModule.CopyFileFromAssertsToTargetFile(file); } fileName = "complete_pdf_viewer_guide_android.pdf"; file = directory.FindFile(fileName); if (file == null) { file = directory.CreateFile(AppFileUtil.GetMimeType(fileName), fileName); localModule.CopyFileFromAssertsToTargetFile(file); } } localModule.SetCurrentPath(curPath); } } }
public void OnFilePathChanged(string path) { if (AppFileUtil.NeedScopedStorageAdaptation()) { if (path == null || AppStorageManager.GetInstance(ApplicationContext).IsRootVolumePath(path)) { return; } AppFileUtil.CheckCallDocumentTreeUriPermission(this, REQUEST_OPEN_DOCUMENT_TREE, AppFileUtil.ToDocumentUriFromPath(path)); } }
private void UpdateLocalModule() { App app = App.Instance(); app.CopyGuideFiles(App.Instance().GetLocalModule(filter)); if (AppFileUtil.NeedScopedStorageAdaptation()) { app.GetLocalModule(filter).SetCurrentPath(AppStorageManager.GetInstance(ApplicationContext).DefaultFolder); } app.GetLocalModule(filter).UpdateStoragePermissionGranted(); }
private void HandleIntent(Intent intent) { if (intent != null) { string path = AppFileUtil.GetFilePath(this, intent, HomeModule.FileExtra); if (path != null) { OnFileSelected(HomeModule.FileExtra, path); } } }
public void SelectDefaultFolderOrNot(Activity activity) { if (AppFileUtil.NeedScopedStorageAdaptation()) { if (activity != null && TextUtils.IsEmpty(AppStorageManager.GetInstance(activity).DefaultFolder)) { AppFileUtil.CheckCallDocumentTreeUriPermission(activity, MainActivity.REQUEST_SELECT_DEFAULT_FOLDER, Uri.Parse(AppFileUtil.ExternalRootDocumentTreeUriPath)); UIToast.GetInstance(activity).Show("Please select the default folder,you can create one when it not exists."); } } }
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_EXTERNAL_STORAGE_MANAGER) { AppFileUtil.UpdateIsExternalStorageManager(); if (!AppFileUtil.IsExternalStorageManager) { CheckStorageState(); } UpdateLocalModule(); } else if (resultCode == Result.Ok) { if (requestCode == AppStorageManager.OpenTreeRequestCode || requestCode == REQUEST_SELECT_DEFAULT_FOLDER) { if (data == null || data.Data == null) { return; } Uri uri = data.Data; ActivityFlags modeFlags = data.Flags & (ActivityFlags.GrantReadUriPermission | ActivityFlags.GrantWriteUriPermission); ContentResolver.TakePersistableUriPermission(uri, modeFlags); LocalModule localModule = App.Instance().GetLocalModule(filter); AppStorageManager storageManager = AppStorageManager.GetInstance(ApplicationContext); if (TextUtils.IsEmpty(storageManager.DefaultFolder)) { string defaultPath = AppFileUtil.ToPathFromDocumentTreeUri(uri); storageManager.DefaultFolder = defaultPath; App.Instance().CopyGuideFiles(localModule); localModule.SetCurrentPath(defaultPath); } else { localModule.ReloadCurrentFilePath(); } } } }