void PrepareForSegue(DetailViewController detailViewController) { NSIndexPath selectedIndexPath = CollectionView.GetIndexPathsForSelectedItems() [0]; detailViewController.ImageIdentifier = DataSource.GetIdentifier(selectedIndexPath); detailViewController.DataSource = DataSource; }
void UpdateFormsSelection() { var mode = SelectableItemsView.SelectionMode; switch (mode) { case SelectionMode.None: SelectableItemsView.SelectedItem = null; // TODO hartez Clear SelectedItems return; case SelectionMode.Single: var paths = CollectionView.GetIndexPathsForSelectedItems(); if (paths.Length > 0) { SelectableItemsView.SelectedItem = GetItemAtIndex(paths[0]); } // TODO hartez Clear SelectedItems return; case SelectionMode.Multiple: // TODO hartez Handle setting SelectedItems to all the items at the selected paths return; default: throw new ArgumentOutOfRangeException(); } }
public override void SetEditing(bool editing, bool animated) { base.SetEditing(editing, animated); if (CollectionViewExtended.IsEditing == editing) { return; } if (CollectionView?.GetIndexPathsForSelectedItems() != null) { foreach (var indexPath in CollectionView.GetIndexPathsForSelectedItems()) { CollectionView.DeselectItem(indexPath, animated); } } CollectionViewExtended.SetEditing(editing, animated); UIView.Animate(0.2f, () => { toolbarBottomConstraint.Constant = editing ? 0 : toolbar.Bounds.Bottom; CollectionView.ContentInset = new UIEdgeInsets(CollectionView.ContentInset.Top, CollectionView.ContentInset.Left, editing ? toolbar.Bounds.Height : 0.0f, CollectionView.ContentInset.Right); CollectionView.ScrollIndicatorInsets = CollectionView.ContentInset; CollectionView.LayoutIfNeeded(); }); }
// Called by Forms to clear the native selection internal void ClearSelection() { var selectedItemIndexes = CollectionView.GetIndexPathsForSelectedItems(); foreach (var index in selectedItemIndexes) { CollectionView.DeselectItem(index, true); } }
internal void ClearSelection() { var paths = CollectionView.GetIndexPathsForSelectedItems(); foreach (var path in paths) { CollectionView.DeselectItem(path, false); } }
private async void DeleteSelectedItems() { var selectedIndeces = CollectionView.GetIndexPathsForSelectedItems(); await ViewModel.DeleteSelectedItemsAsync(); DeselectAllItems(); CollectionView.DeleteItems(selectedIndeces); }
private async void DoneClicked(object sender = null, EventArgs e = null) { var parent = Parent; var selectedItemsIndex = CollectionView.GetIndexPathsForSelectedItems(); var selectedItemsCount = selectedItemsIndex.Length; var selectedMediaFiles = new MediaFile[selectedItemsCount]; //Create activity indicator if we have selected items. //It will give the user some visual feedback that the app is still working //if the media have to be downloaded from the iCloud UIView pageOverlay = null; UIActivityIndicatorView activityIndicator = null; if (selectedItemsCount > 0) { InvokeOnMainThread(() => { pageOverlay = new UIView(View.Bounds); pageOverlay.BackgroundColor = UIColor.Black.ColorWithAlpha(0.8f); View.Add(pageOverlay); activityIndicator = new UIActivityIndicatorView(View.Bounds); activityIndicator.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge; activityIndicator.StartAnimating(); View.Add(activityIndicator); }); } var tasks = new List <Task>(); for (int i = 0; i < selectedItemsCount; i++) { var j = i; var t = Task.Run(() => { var alAsset = AssetForIndexPath(selectedItemsIndex[j]); var mediaFile = parent?.GetPictureMediaFile(alAsset, j); if (mediaFile != null) { selectedMediaFiles[j] = mediaFile; } alAsset?.Dispose(); alAsset = null; }); tasks.Add(t); } await Task.WhenAll(tasks); pageOverlay?.RemoveFromSuperview(); activityIndicator?.RemoveFromSuperview(); //Some items in the array might be null. Let's remove them. parent?.SelectedMediaFiles(selectedMediaFiles.Where(mf => mf != null).ToList()); }
public override void ItemDeselected(UICollectionView collectionView, NSIndexPath indexPath) { if (Editing) { var selected = CollectionView.GetIndexPathsForSelectedItems(); if (selected != null && selected.Length == 0) { NavigationController.ToolbarHidden = true; } } }
private void DeselectAllItems() { foreach (var item in ViewModel.Items) { item.IsSelected = false; } foreach (var item in CollectionView.GetIndexPathsForSelectedItems()) { CollectionView.DeselectItem(item, true); } }
public void DeleteSelected() { var selected = CollectionView.GetIndexPathsForSelectedItems(); var items = selected.Select(i => i.Item).OrderBy(i => i).Reverse(); foreach (var item in items) { collectionData.Remove(collectionData[(int)item]); } CollectionView.DeleteItems(selected); NavigationController.ToolbarHidden = true; }
public void DeselectAll() { if (CollectionView.GetIndexPathsForSelectedItems() is NSIndexPath[] indexPaths) { foreach (var indexPath in indexPaths.AsEnumerable()) { var asset = AssetsManager.Shared.AssetArray[indexPath.Row]; this.Deselect(asset, indexPath); this.Delegate?.DidDeselect(Picker, asset, indexPath); } UpdateNavigationStatus(); CollectionView.ReloadItems(indexPaths); } }
/// <summary> /// Programatically deselect all selected assets. /// </summary> /// <param name="animated">If set to <c>true</c> animated.</param> public void DeselectAllAssets(bool animated) { var items = CollectionView.GetIndexPathsForSelectedItems(); if (items == null) { return; } foreach (var selectedPath in items) { CollectionView.DeselectItem(selectedPath, animated); } }
public override void ViewDidAppear(bool animated) { base.ViewDidAppear(animated); var selectedItems = CollectionView.GetIndexPathsForSelectedItems(); if (selectedItems.Length == 0) { return; } UIView.Animate(0.3f, 0.0f, UIViewAnimationOptions.CurveLinear, () => { CollectionView.DeselectItem(selectedItems [0], true); }, null); }
private void DoneClicked(object sender = null, EventArgs e = null) { var selected = new List <ALAsset>(); foreach (var selectedIndexPath in CollectionView.GetIndexPathsForSelectedItems()) { selected.Add(AssetForIndexPath(selectedIndexPath)); } var parent = Parent; if (parent != null) { parent.SelectedAssets(selected); } }
private async void DuplicateSelectedItems() { var insertIndeces = CollectionView.GetIndexPathsForSelectedItems() .OrderBy(i => i.Row).ToArray(); for (var i = 0; i < insertIndeces.Length; i++) { var nextIndex = insertIndeces[i]; insertIndeces[i] = NSIndexPath.FromRowSection(nextIndex.Row + i + 1, nextIndex.Section); } await ViewModel.DuplicateSelectedItemsAsync(); DeselectAllItems(); CollectionView.InsertItems(insertIndeces); }
public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender) { var indexPaths = CollectionView.GetIndexPathsForSelectedItems(); if (indexPaths.Length > 0) { var selectedIndexPath = indexPaths[0]; var assetListDetailViewController = segue.DestinationViewController as AssetDetailListViewController; assetListDetailViewController.PhotoKitAssetList = MomentAlbumList[selectedIndexPath.Section]; assetListDetailViewController.NohanaImagePickerController = NohanaImagePickerController; assetListDetailViewController.CurrentIndexPath = selectedIndexPath; } //base.PrepareForSegue(segue, sender); }
public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender) { base.PrepareForSegue(segue, sender); if (segue.Identifier != DetailSegueName) { return; } NSIndexPath selectedIndexPath = CollectionView.GetIndexPathsForSelectedItems() [0]; string imageIdentifier = DataSource.IdentifierForIndexPath(selectedIndexPath); detailViewController = (DetailViewController)segue.DestinationViewController; detailViewController.ImageIdentifier = imageIdentifier; detailViewController.DataSource = DataSource; SaveActivity(); // create our new NSUserActivity handled us ClearActivityContinuationInProgress(); }
public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender) { if (segue.Identifier == segueIdentifier) { var indexPaths = CollectionView.GetIndexPathsForSelectedItems(); if (indexPaths == null || indexPaths.Length == 0) { return; } var viewController = (ProductTableViewController)segue.DestinationViewController; viewController.Product = products [indexPaths [0].Row]; } else { base.PrepareForSegue(segue, sender); } }
public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender) { var selectedIndices = CollectionView.GetIndexPathsForSelectedItems(); if (selectedIndices.Length > 0) { var selectedIndex = selectedIndices[0]; if (selectedIndex != null) { var assetListDetailViewController = segue.DestinationViewController as AssetDetailListViewController; if (assetListDetailViewController != null) { assetListDetailViewController.PhotoKitAssetList = PhotoKitAssetList; assetListDetailViewController.NohanaImagePickerController = NohanaImagePickerController; assetListDetailViewController.CurrentIndexPath = selectedIndex; } } } }
void SynchronizeNativeSelectionWithSelectedItems() { var selectedItems = ItemsView.SelectedItems; var selectedIndexPaths = CollectionView.GetIndexPathsForSelectedItems(); foreach (var path in selectedIndexPaths) { var itemAtPath = GetItemAtIndex(path); if (ShouldNotBeSelected(itemAtPath, selectedItems)) { CollectionView.DeselectItem(path, true); } } foreach (var item in selectedItems) { SelectItem(item); } }
public async override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender) { base.PrepareForSegue(segue, sender); var dest = (UINavigationController)segue.DestinationViewController; var tbController = (TestBenchViewController)dest.ViewControllers[0]; if (segue.Identifier == "newTestBench") { tbController.ViewModel = new TestBenchViewModel(await TestBench.CreateDefaultAsync()); } if (segue.Identifier == "editTestBench") { var name = ViewModel.Items[CollectionView.GetIndexPathsForSelectedItems()[0].Row].TitleText; var testBench = await TestBench.CreateAsync(name); tbController.ViewModel = new TestBenchViewModel(testBench); } }
public override void ViewDidAppear(bool animated) { base.ViewDidAppear(animated); var selectedItems = CollectionView.GetIndexPathsForSelectedItems(); if (selectedItems.Length > 0) { UIView.Animate(0.3, 0, UIViewAnimationOptions.CurveLinear, () => CollectionView.DeselectItem(selectedItems [0], true) , null); } if (detailViewController == null) { return; } UserActivity = null; detailViewController = null; }
private void DoneClicked(object sender = null, EventArgs e = null) { var parent = Parent; var selectedItemsIndex = CollectionView.GetIndexPathsForSelectedItems(); var selectedItemsCount = selectedItemsIndex.Length; var selectedMediaFiles = new MediaFile[selectedItemsCount]; Parallel.For(0, selectedItemsCount, selectedIndex => { var alAsset = AssetForIndexPath(selectedItemsIndex[selectedIndex]); var mediaFile = parent?.GetPictureMediaFile(alAsset, selectedIndex); if (mediaFile != null) { selectedMediaFiles[selectedIndex] = mediaFile; } alAsset?.Dispose(); alAsset = null; }); parent?.SelectedMediaFiles(selectedMediaFiles.ToList()); }