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;
        }
示例#3
0
        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);
         }
     }
 }
示例#7
0
 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();
                    }
                }
            }
        }