@nativescript-community/ui-collectionview 4.0.64 → 4.0.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.android.js CHANGED
@@ -1,5 +1,5 @@
1
- import { ChangeType, ContentView, CoreTypes, Property, ProxyViewContainer, Trace, View, ViewBase, booleanConverter, paddingBottomProperty, paddingLeftProperty, paddingRightProperty, paddingTopProperty, profile } from '@nativescript/core';
2
- import { layout } from '@nativescript/core/utils/layout-helper';
1
+ /* eslint-disable no-redeclare */
2
+ import { ChangeType, ContentView, CoreTypes, Property, ProxyViewContainer, Trace, Utils, View, ViewBase, booleanConverter, paddingBottomProperty, paddingLeftProperty, paddingRightProperty, paddingTopProperty, profile } from '@nativescript/core';
3
3
  import { reorderLongPressEnabledProperty, reorderingEnabledProperty, reverseLayoutProperty, scrollBarIndicatorVisibleProperty } from '.';
4
4
  import { CLog, CLogTypes, CollectionViewBase, ListViewViewTypes, isScrollEnabledProperty, orientationProperty } from './index-common';
5
5
  export * from './index-common';
@@ -91,6 +91,8 @@ export class CollectionView extends CollectionViewBase {
91
91
  this.templateStringTypeNumber = new Map();
92
92
  this._currentNativeItemType = 0;
93
93
  this.currentSpanCount = 1;
94
+ // used to store viewHolder and thus their corresponding Views
95
+ // used to "destroy" cells when possible
94
96
  this._viewHolders = new Set();
95
97
  this._scrollOrLoadMoreChangeCount = 0;
96
98
  this.scrolling = false;
@@ -102,10 +104,20 @@ export class CollectionView extends CollectionViewBase {
102
104
  this._layedOut = false;
103
105
  }
104
106
  createNativeView() {
107
+ // storing the class in a property for reuse in the future cause a materializing which is pretty slow!
105
108
  if (!CollectionViewRecyclerView) {
106
109
  CollectionViewRecyclerView = com.nativescript.collectionview.RecyclerView;
107
110
  }
108
111
  const recyclerView = CollectionViewRecyclerView.createRecyclerView(this._context);
112
+ // const expMgr = new RecyclerViewExpandableItemManager(null);
113
+ // adapter.setDisplayHeadersAtStartUp(true).setStickyHeaders(true); //Make headers sticky
114
+ // Endless scroll with 1 item threshold
115
+ // .setLoadingMoreAtStartUp(true)
116
+ // .setEndlessScrollListener(this, new ProgressItem())
117
+ // .setEndlessScrollThreshold(1); //Default=1
118
+ // const fastScroller = new com.l4digital.fastscroll.FastScroller(this._context);
119
+ // fastScroller.setSectionIndexer(adapter);
120
+ // fastScroller.attachRecyclerView(recyclerView);
109
121
  return recyclerView;
110
122
  }
111
123
  initNativeView() {
@@ -135,6 +147,7 @@ export class CollectionView extends CollectionViewBase {
135
147
  view.callUnloaded();
136
148
  }
137
149
  view._isAddedToNativeVisualTree = false;
150
+ //@ts-ignore
138
151
  view.parent = null;
139
152
  view._tearDownUI();
140
153
  }
@@ -159,13 +172,22 @@ export class CollectionView extends CollectionViewBase {
159
172
  }));
160
173
  nativeView.setRecyclerListener(recyclerListener);
161
174
  nativeView.setRecycledViewPool(this.recycledViewPool);
175
+ // nativeView.owner = new WeakRef(this);
176
+ // nativeView.sizeChangedListener = new com.nativescript.collectionview.SizeChangedListener({
177
+ // onSizeChanged: (w, h, oldW, oldH) => this.onSizeChanged(w, h),
178
+ // });
179
+ // const orientation = this._getLayoutManagarOrientation();
180
+ // initGridLayoutManager();
162
181
  let layoutManager;
163
182
  if (CollectionViewBase.layoutStyles[this.layoutStyle]) {
164
183
  layoutManager = CollectionViewBase.layoutStyles[this.layoutStyle].createLayout(this);
165
184
  }
166
185
  else {
167
186
  layoutManager = new com.nativescript.collectionview.PreCachingGridLayoutManager(this._context, 1);
187
+ // layoutManager = new PreCachingGridLayoutManager(this._context, 1);
188
+ // (layoutManager as any).owner = new WeakRef(this);
168
189
  }
190
+ // this.spanSize
169
191
  nativeView.setLayoutManager(layoutManager);
170
192
  nativeView.layoutManager = layoutManager;
171
193
  nativeView.sizeChangedListener = new com.nativescript.collectionview.SizeChangedListener({
@@ -174,11 +196,19 @@ export class CollectionView extends CollectionViewBase {
174
196
  });
175
197
  this.spanSize = this._getSpanSize;
176
198
  const animator = new com.h6ah4i.android.widget.advrecyclerview.animator.RefactoredDefaultItemAnimator();
199
+ // Change animations are enabled by default since support-v7-recyclerview v22.
200
+ // Need to disable them when using animation indicator.
177
201
  animator.setSupportsChangeAnimations(false);
178
202
  nativeView.setItemAnimator(animator);
179
203
  this.refresh();
180
204
  }
181
205
  disposeNativeView() {
206
+ // clear the cache
207
+ // this.eachChildView((view) => {
208
+ // view.parent._removeView(view);
209
+ // return true;
210
+ // });
211
+ // this._realizedItems.clear();
182
212
  const nativeView = this.nativeViewProtected;
183
213
  nativeView.setRecyclerListener(null);
184
214
  nativeView.setRecycledViewPool(null);
@@ -208,6 +238,7 @@ export class CollectionView extends CollectionViewBase {
208
238
  getViewForItemAtIndex(index) {
209
239
  return this.enumerateViewHolders((v) => (v.getAdapterPosition() === index ? v.view : undefined));
210
240
  }
241
+ //@ts-ignore
211
242
  set spanSize(inter) {
212
243
  if (!(typeof inter === 'function')) {
213
244
  return;
@@ -263,7 +294,7 @@ export class CollectionView extends CollectionViewBase {
263
294
  return {
264
295
  object: this,
265
296
  eventName,
266
- scrollOffset: offset / layout.getDisplayDensity(),
297
+ scrollOffset: offset / Utils.layout.getDisplayDensity(),
267
298
  scrollOffsetPercentage: offset / (range - extent),
268
299
  dx,
269
300
  dy
@@ -315,12 +346,14 @@ export class CollectionView extends CollectionViewBase {
315
346
  }
316
347
  onScrollStateChanged(view, newState) {
317
348
  if (this.scrolling && newState === 0) {
349
+ // SCROLL_STATE_IDLE
318
350
  this.scrolling = false;
319
351
  if (this.hasListeners(CollectionViewBase.scrollEndEvent)) {
320
352
  this.notify(this.computeScrollEventData(view, CollectionViewBase.scrollEndEvent));
321
353
  }
322
354
  }
323
355
  else if (!this.scrolling && newState === 1) {
356
+ //SCROLL_STATE_DRAGGING
324
357
  this.needsScrollStartEvent = true;
325
358
  this.scrolling = true;
326
359
  }
@@ -339,6 +372,7 @@ export class CollectionView extends CollectionViewBase {
339
372
  this.detachScrollListener();
340
373
  }
341
374
  }
375
+ //@ts-ignore
342
376
  get android() {
343
377
  return this.nativeView;
344
378
  }
@@ -435,6 +469,7 @@ export class CollectionView extends CollectionViewBase {
435
469
  const layoutManager = this.layoutManager;
436
470
  if (layoutManager && layoutManager.setReverseLayout) {
437
471
  layoutManager.setReverseLayout(value);
472
+ // layoutManager['setStackFromEnd'](value);
438
473
  }
439
474
  }
440
475
  [nestedScrollingEnabledProperty.setNative](value) {
@@ -478,6 +513,7 @@ export class CollectionView extends CollectionViewBase {
478
513
  }
479
514
  startDragging(index) {
480
515
  if (this.reorderEnabled && this._itemTouchHelper) {
516
+ // let viewHolder: CollectionViewCellHolder;
481
517
  const viewHolder = this.enumerateViewHolders((v) => (v.getAdapterPosition() === index ? v : undefined));
482
518
  if (viewHolder) {
483
519
  this.startViewHolderDragging(index, viewHolder);
@@ -485,6 +521,8 @@ export class CollectionView extends CollectionViewBase {
485
521
  }
486
522
  }
487
523
  startViewHolderDragging(index, viewHolder) {
524
+ // isDragging is to prevent longPress from triggering and starting a new drag
525
+ // when triggered manually
488
526
  if (!this.isDragging && this.shouldMoveItemAtIndex(index)) {
489
527
  this.isDragging = true;
490
528
  this._itemTouchHelper.startDrag(viewHolder);
@@ -503,7 +541,10 @@ export class CollectionView extends CollectionViewBase {
503
541
  }
504
542
  _reorderItemInSource(oldPosition, newPosition) {
505
543
  const adapter = this._listViewAdapter;
544
+ // 3. Tell adapter to render the model update.
506
545
  adapter.notifyItemMoved(oldPosition, newPosition);
546
+ // on android _reorderItemInSource is call on every "move" and needs to update the adapter/items
547
+ // we will call events only at then end
507
548
  super._reorderItemInSource(oldPosition, newPosition, false);
508
549
  }
509
550
  [reorderLongPressEnabledProperty.setNative](value) {
@@ -551,11 +592,11 @@ export class CollectionView extends CollectionViewBase {
551
592
  this.refresh();
552
593
  }
553
594
  onItemTemplateChanged(oldValue, newValue) {
554
- super.onItemTemplateChanged(oldValue, newValue);
595
+ super.onItemTemplateChanged(oldValue, newValue); // TODO: update current template with the new one
555
596
  this.refresh();
556
597
  }
557
598
  onItemTemplatesChanged(oldValue, newValue) {
558
- super.onItemTemplatesChanged(oldValue, newValue);
599
+ super.onItemTemplatesChanged(oldValue, newValue); // TODO: update current template with the new one
559
600
  this.refresh();
560
601
  }
561
602
  setOnLayoutChangeListener() {
@@ -610,6 +651,8 @@ export class CollectionView extends CollectionViewBase {
610
651
  const p = CollectionViewBase.plugins[k];
611
652
  p.onLayout && p.onLayout(this, left, top, right, bottom);
612
653
  });
654
+ // there is no need to call refresh if it was triggered before with same size.
655
+ // this refresh is just to handle size change
613
656
  const layoutKey = this._innerWidth + '_' + this._innerHeight;
614
657
  if (this._isDataDirty || (this._lastLayoutKey && this._lastLayoutKey !== layoutKey)) {
615
658
  setTimeout(() => this.refresh(), 0);
@@ -632,6 +675,7 @@ export class CollectionView extends CollectionViewBase {
632
675
  if (event.addedCount > 0) {
633
676
  this._listViewAdapter.notifyItemRangeInserted(event.index, event.addedCount);
634
677
  }
678
+ // Reload the items to avoid duplicate Load on Demand indicators:
635
679
  return;
636
680
  }
637
681
  case ChangeType.Update: {
@@ -644,6 +688,7 @@ export class CollectionView extends CollectionViewBase {
644
688
  const added = event.addedCount;
645
689
  const removed = (event.removed && event.removed.length) || 0;
646
690
  if (added > 0 && added === removed) {
691
+ // notifyItemRangeChanged wont create a fade effect
647
692
  if (!this.animateItemUpdate) {
648
693
  this._listViewAdapter.notifyItemRangeChanged(event.index, added);
649
694
  }
@@ -682,6 +727,7 @@ export class CollectionView extends CollectionViewBase {
682
727
  this._listViewAdapter.notifyDataSetChanged();
683
728
  }
684
729
  eachChild(callback) {
730
+ // used for css updates (like theme change)
685
731
  this.enumerateViewHolders((v) => {
686
732
  const view = v.view;
687
733
  if (view) {
@@ -689,6 +735,7 @@ export class CollectionView extends CollectionViewBase {
689
735
  callback(view);
690
736
  }
691
737
  else {
738
+ // in some cases (like item is unloaded from another place (like angular) view.parent becomes undefined)
692
739
  if (view.parent) {
693
740
  callback(view.parent);
694
741
  }
@@ -748,26 +795,27 @@ export class CollectionView extends CollectionViewBase {
748
795
  };
749
796
  this.notify(args);
750
797
  }
798
+ //@ts-ignore
751
799
  get scrollOffset() {
752
800
  const view = this.nativeViewProtected;
753
801
  if (!view) {
754
802
  return 0;
755
803
  }
756
- return (this.isHorizontal() ? view.computeHorizontalScrollOffset() : view.computeVerticalScrollOffset()) / layout.getDisplayDensity();
804
+ return (this.isHorizontal() ? view.computeHorizontalScrollOffset() : view.computeVerticalScrollOffset()) / Utils.layout.getDisplayDensity();
757
805
  }
758
806
  get verticalOffsetX() {
759
807
  const view = this.nativeViewProtected;
760
808
  if (!view) {
761
809
  return 0;
762
810
  }
763
- return view.computeHorizontalScrollOffset() / layout.getDisplayDensity();
811
+ return view.computeHorizontalScrollOffset() / Utils.layout.getDisplayDensity();
764
812
  }
765
813
  get verticalOffsetY() {
766
814
  const view = this.nativeViewProtected;
767
815
  if (!view) {
768
816
  return 0;
769
817
  }
770
- return view.computeVerticalScrollOffset() / layout.getDisplayDensity();
818
+ return view.computeVerticalScrollOffset() / Utils.layout.getDisplayDensity();
771
819
  }
772
820
  scrollToIndex(index, animated = true) {
773
821
  if (!this.nativeViewProtected) {
@@ -788,6 +836,7 @@ export class CollectionView extends CollectionViewBase {
788
836
  bottom: nativeView.getPaddingBottom(),
789
837
  left: nativeView.getPaddingLeft()
790
838
  };
839
+ // tslint:disable-next-line:prefer-object-spread
791
840
  const newValue = Object.assign(padding, newPadding);
792
841
  nativeView.setClipToPadding(false);
793
842
  nativeView.setPadding(newValue.left, newValue.top, newValue.right, newValue.bottom);
@@ -803,6 +852,8 @@ export class CollectionView extends CollectionViewBase {
803
852
  onBindViewHolder: this.onBindViewHolder.bind(this),
804
853
  onViewRecycled: this.onViewRecycled.bind(this)
805
854
  });
855
+ // const composedAdapter = new com.h6ah4i.android.widget.advrecyclerview.composedadapter.ComposedAdapter();
856
+ // composedAdapter.addAdapter(new CollectionViewAdapter(new WeakRef(this)));
806
857
  return adapter;
807
858
  }
808
859
  getItemCount() {
@@ -839,10 +890,19 @@ export class CollectionView extends CollectionViewBase {
839
890
  const selector = this._itemTemplateSelector;
840
891
  const dataItem = this.getItemAtIndex(position);
841
892
  if (dataItem) {
842
- selectorType = selector(dataItem, position, this.items);
893
+ selectorType = selector.call(this, dataItem, position, this.items);
843
894
  }
844
895
  }
845
896
  return this.templateKeyToNativeItem(selectorType);
897
+ // if (!this.templateTypeNumberString.has(selectorType)) {
898
+ // resultType = this._currentNativeItemType;
899
+ // this.templateTypeNumberString.set(selectorType, resultType);
900
+ // this.templateStringTypeNumber.set(resultType, selectorType);
901
+ // this._currentNativeItemType++;
902
+ // } else {
903
+ // resultType = this.templateTypeNumberString.get(selectorType);
904
+ // }
905
+ // return resultType;
846
906
  }
847
907
  templateKeyToNativeItem(key) {
848
908
  if (!this.templateTypeNumberString) {
@@ -855,6 +915,8 @@ export class CollectionView extends CollectionViewBase {
855
915
  this._currentNativeItemType++;
856
916
  });
857
917
  this._currentNativeItemType = Math.max(this._itemTemplatesInternal.size, 100);
918
+ // templates will be numbered 0,1,2,3... for named templates
919
+ // default/unnamed templates will be numbered 100, 101, 102, 103...
858
920
  }
859
921
  if (!this.templateTypeNumberString.has(key)) {
860
922
  this.templateTypeNumberString.set(key, this._currentNativeItemType);
@@ -892,6 +954,7 @@ export class CollectionView extends CollectionViewBase {
892
954
  onCreateViewHolder(parent, viewType) {
893
955
  let view = this.getViewForViewType(ListViewViewTypes.ItemView, this.getKeyByValue(viewType));
894
956
  const isNonSync = view === undefined;
957
+ // dont create unecessary StackLayout if template.createView returns. Will happend when not using Vue or angular
895
958
  if (isNonSync || view instanceof ProxyViewContainer) {
896
959
  const parentView = new ContentView();
897
960
  parentView.id = 'collectionViewHolder';
@@ -899,6 +962,7 @@ export class CollectionView extends CollectionViewBase {
899
962
  }
900
963
  view._setupAsRootView(this._context);
901
964
  view._isAddedToNativeVisualTree = true;
965
+ //@ts-ignore
902
966
  view.parent = this;
903
967
  view.callLoaded();
904
968
  if (!CollectionViewCellHolder) {
@@ -952,6 +1016,7 @@ export class CollectionView extends CollectionViewBase {
952
1016
  this.notify(args);
953
1017
  if (isNonSync && args.view !== view) {
954
1018
  view = args.view;
1019
+ // the view has been changed on the event handler
955
1020
  holder.view.content = args.view;
956
1021
  }
957
1022
  view.notify({ eventName: CollectionViewBase.bindedEvent });
@@ -968,11 +1033,18 @@ export class CollectionView extends CollectionViewBase {
968
1033
  }
969
1034
  }
970
1035
  if (width || !view.width) {
971
- view.width = layout.toDeviceIndependentPixels(width);
1036
+ view.width = Utils.layout.toDeviceIndependentPixels(width);
972
1037
  }
973
1038
  if (height || !view.height) {
974
- view.height = layout.toDeviceIndependentPixels(height);
975
- }
1039
+ view.height = Utils.layout.toDeviceIndependentPixels(height);
1040
+ }
1041
+ // if (this.hasListeners(CollectionViewBase.displayItemEvent) ) {
1042
+ // this.notify<CollectionViewItemDisplayEventData>({
1043
+ // eventName: CollectionViewBase.displayItemEvent,
1044
+ // index:position,
1045
+ // object: this,
1046
+ // });
1047
+ // }
976
1048
  if (Trace.isEnabled()) {
977
1049
  CLog(CLogTypes.log, 'onBindViewHolder done ', position);
978
1050
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"../src/","sources":["index.android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"../src/","sources":["index.android.ts"],"names":[],"mappings":"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"}