public override View OnCreateView (LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) { View view = layoutInflater.Inflate (Resource.Layout.fragment_explorer, viewGroup, false); explorerAdapter = new ExplorerAdapter (Activity, foundTreeNodeChildren, false); ListAdapter = explorerAdapter; return view; }
public MainViewModel() { // Single instance is started in App.xaml.cs: SingleInstanceApplication.CommandReceived += SingleInstanceApplication_CommandReceived; this.explorer = new ExplorerAdapter(); this.explorerMonitor = new ExplorerMonitorAdapter(System.Threading.SynchronizationContext.Current); this.explorerMonitor.ExplorerWindowGotFocus += OnExplorerWindowGotFocus; this.explorerMonitor.ExplorerSelectionChanged += OnExplorerSelectionChanged; if (!IsDesignMode()) { // If we're running inside a designer we don't want to track explorer selection. // Otherwise WPF Designer might crash or cause deadlocks try { this.explorerMonitor.StartMonitor(); } catch (Exception ex) { System.Windows.MessageBox.Show($"Failed to start Explorer Monitor with error: {ex}", "Error", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); } } this.ErrorMessage = "Nothing to preview"; previews = new List <IPreviewModel>(); previews.Add(new Previews.ImagePreviewModel()); previews.Add(new Previews.TextPreviewModel()); previews.Add(new Previews.RtfPreviewModel()); previews.Add(new Previews.VideoPreviewModel()); previews.Add(new Previews.MarkdownPreviewModel()); previews.Add(new Previews.HtmlPreviewModel()); previews.Add(new Previews.DirectoryPreviewModel()); previews.Add(new Previews.LocalDrivePreviewModel()); // add new views above these two previews.Add(new Previews.WindowsPreviewModel()); // slow and painful, so our last resort previews.Add(new Previews.DefaultPreviewModel()); // thats our fallback which will always display something }
private bool GetExplorerSelectedItemPath(IntPtr hwnd, ref string selectedItem) { try { string[] items = ExplorerAdapter.GetSelectedItems(hwnd); if (items == null || items.Length == 0) { this.ErrorMessage = "Nothing to preview"; return(false); } // TODO multiselect selectedItem = items.First(); return(true); } catch (Exception ex) { this.ErrorMessage = "Failed to access explorer with error:\n" + ex.ToString(); return(false); } }
public override View OnCreateView (LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) { Dialog.SetTitle (treeNodeToMove.Name); View view = layoutInflater.Inflate (Resource.Layout.fragment_move_file, viewGroup, false); //Set color LinearLayout customActionBar = view.FindViewById<LinearLayout> (Resource.Id.custom_actionbar_fragment_move_file); customActionBar.SetBackgroundColor (Color.ParseColor (HomeActivity.colorOfSelectedLocalBox)); buttonMoveFileToSelectedFolder = view.FindViewById<Button> (Resource.Id.button_move_file_to_selected_folder); buttonMoveFileToSelectedFolder.Enabled = false; buttonMoveFileToSelectedFolder.Click += delegate { MoveFileToOpenedFolder(); }; openedDirectories.Add ("/"); explorerAdapter = new ExplorerAdapter (Activity, foundDirectoryTreeNodes, true); listViewMoveFile = view.FindViewById<ListView> (Resource.Id.listViewMoveFile); listViewMoveFile.Adapter = explorerAdapter; listViewMoveFile.ItemClick += async (object sender, Android.Widget.AdapterView.ItemClickEventArgs e) => { //List item select event ShowProgressDialog(Activity, null); try{ List<TreeNode>foundDirectories = new List<TreeNode>(); pathOfCurrentOpenedFolder = explorerAdapter.foundTreeNodes[e.Position].Path; TreeNode selectedTreeNode = await DataLayer.Instance.GetFolder (pathOfCurrentOpenedFolder); foreach(TreeNode foundTreeNode in selectedTreeNode.Children) { if(foundTreeNode.IsDirectory) { foundDirectories.Add(foundTreeNode); } } openedDirectories.Add (selectedTreeNode.Path); selectedTreeNodes.Add(selectedTreeNode); buttonBack.Visibility = ViewStates.Visible; //Used to determine folder icon if(openedDirectories.Count == 2){ if(selectedTreeNode.HasKeys){ openedFolderIsUnencrypted = false; }else{ openedFolderIsUnencrypted = true; } } explorerAdapter = new ExplorerAdapter (Activity, foundDirectories, true); listViewMoveFile.Adapter = explorerAdapter; Activity.RunOnUiThread(new Action(()=> { explorerAdapter.NotifyDataSetChanged(); buttonMoveFileToSelectedFolder.Enabled = true; HideProgressDialog(); Console.WriteLine("Current opened folder; " + pathOfCurrentOpenedFolder); })); } catch (Exception ex){ Insights.Report(ex); HideProgressDialog(); Toast.MakeText (Activity, "Er is iets fout gegaan. Probeer het a.u.b. opnieuw", ToastLength.Short).Show (); } }; buttonBack = view.FindViewById<ImageButton> (Resource.Id.imagebutton_back_move_file); buttonBack.Visibility = ViewStates.Invisible; buttonBack.Click += delegate { int directoriesOpened = selectedTreeNodes.Count; if(directoriesOpened > 0) { selectedTreeNodes.RemoveAt(directoriesOpened - 1); if(selectedTreeNodes.Count == 0){ explorerAdapter = new ExplorerAdapter (Activity, foundDirectoryTreeNodes, true); listViewMoveFile.Adapter = explorerAdapter; buttonBack.Visibility = ViewStates.Invisible; //Set path of destination folder pathOfCurrentOpenedFolder = "/"; buttonMoveFileToSelectedFolder.Enabled = false; } else{ List<TreeNode>foundDirectories = new List<TreeNode>(); //Set path of destination folder pathOfCurrentOpenedFolder = selectedTreeNodes[directoriesOpened - 2].Path; foreach(TreeNode foundTreeNode in selectedTreeNodes[directoriesOpened - 2].Children) { if(foundTreeNode.IsDirectory) { foundDirectories.Add(foundTreeNode); } } explorerAdapter = new ExplorerAdapter (Activity, foundDirectories, true); listViewMoveFile.Adapter = explorerAdapter; } } //UPDATE UI Activity.RunOnUiThread(new Action(()=> { explorerAdapter.NotifyDataSetChanged(); })); int count = openedDirectories.Count; openedDirectories.RemoveAt(count -1); }; return view; }
private async void UnFavoriteFile (TreeNode selectedItem) { try { popupWindow.Dismiss (); parentActivity.ShowProgressDialog ("Bestanden verwijderen uit favorieten"); bool unFavoriteSucceed = await DataLayer.Instance.UnFavoriteFile (selectedItem); if (!unFavoriteSucceed) { Toast.MakeText (Android.App.Application.Context, "Mislukt om bestand uit favorieten te verwijderen", ToastLength.Short).Show (); } else { Toast.MakeText (Android.App.Application.Context, "Bestand succesvol uit favorieten verwijderd", ToastLength.Short).Show (); } parentActivity.HideProgressDialog (); //Refresh listview int numberOfDirectoriesOpened = ExplorerFragment.openedDirectories.Count; if(numberOfDirectoriesOpened >= 1){ if(ExplorerFragment.openedDirectories [numberOfDirectoriesOpened - 1] != null){ //Favorite folder niet geopend RefreshData(); }else{ //Favorite folder opened so refresh favorite list List<TreeNode> favorites = DataLayer.Instance.GetFavorites (); explorerAdapter = new ExplorerAdapter (Activity, favorites, false); ListAdapter = explorerAdapter; //UPDATE UI Activity.RunOnUiThread(new Action(()=> { explorerAdapter.NotifyDataSetChanged(); explorerListView.InvalidateViews(); })); } } else { RefreshData(); } } catch (Exception ex){ Insights.Report(ex); parentActivity.HideProgressDialog (); Toast.MakeText (Android.App.Application.Context, "Mislukt om bestand uit favorieten te verwijderen", ToastLength.Short).Show (); } }
public async void RefreshData () { parentActivity.HideProgressDialog (); parentActivity.ShowProgressDialog(null); try { //Get current opened directory name int numberOfDirectoriesOpened = ExplorerFragment.openedDirectories.Count; if(numberOfDirectoriesOpened >= 1){ string currentDirectoryName = ExplorerFragment.openedDirectories [numberOfDirectoriesOpened - 1]; foundTreeNodeChildren = new List<TreeNode> (); foundTreeNodeChildren = (await DataLayer.Instance.GetFolder (currentDirectoryName, true)).Children; parentActivity.RunOnUiThread(new Action(()=> { //Add favorite list item in root listview of local box if (openedDirectories.Count == 1) { foundTreeNodeChildren.Insert (0, new TreeNode (){ Name = "Lokale favorieten", Type = "favorite" }); } explorerAdapter = new ExplorerAdapter (Activity, foundTreeNodeChildren, false); ListAdapter = explorerAdapter; //Update UI explorerAdapter.NotifyDataSetChanged(); explorerListView.InvalidateViews(); })); } parentActivity.HideProgressDialog(); } catch (Exception ex){ Insights.Report(ex); Console.WriteLine (ex.Message); Console.WriteLine (ex.StackTrace); parentActivity.HideProgressDialog (); if (!SslValidator.CertificateErrorRaised) { Toast.MakeText (Android.App.Application.Context, "Data verversen mislukt. Probeer het a.u.b. opnieuw", ToastLength.Short).Show (); } } }