18
18
import android .view .VelocityTracker ;
19
19
import android .view .View ;
20
20
import android .view .ViewGroup ;
21
+ import android .view .ViewParent ;
21
22
import android .view .animation .Animation ;
22
23
import android .view .animation .DecelerateInterpolator ;
23
24
import android .view .animation .ScaleAnimation ;
@@ -807,13 +808,10 @@ public void notifyDataSetChanged(){
807
808
ViewGroup parent_header = removeParent (boardAdapter .columns .get (column_pos ).header );
808
809
boardAdapter .columns .get (column_pos ).header = boardAdapter .createHeaderView (getContext (), boardAdapter .columns .get (column_pos ).header_object , column_pos );
809
810
parent_header .addView (boardAdapter .columns .get (column_pos ).header );
810
- }
811
- for (int item_pos = 0 ; item_pos < boardAdapter .columns .get (column_pos ).objects .size ();item_pos ++){
812
- ViewGroup parent_item = removeParent (boardAdapter .columns .get (column_pos ).views .get (item_pos ));
813
- View view = boardAdapter .createItemView (getContext (), boardAdapter .columns .get (column_pos ).header_object ,boardAdapter .columns .get (column_pos ).objects .get (item_pos ), column_pos ,item_pos );
814
- boardAdapter .columns .get (column_pos ).views .remove (item_pos );
815
- boardAdapter .columns .get (column_pos ).views .add (item_pos ,view );
816
- parent_item .addView (view );
811
+ ViewGroup layout = (ViewGroup )parent_header .getParent ();
812
+ boardAdapter .columns .get (column_pos ).header .setOnClickListener (createHeaderOnClickListener (layout ));
813
+ boardAdapter .columns .get (column_pos ).header .setOnLongClickListener (createHeaderOnLongClickListener (parent_header ,layout ));
814
+
817
815
}
818
816
if (boardAdapter .columns .get (column_pos ).footer != null ) {
819
817
ViewGroup parent_footer = removeParent (boardAdapter .columns .get (column_pos ).footer );
@@ -823,6 +821,56 @@ public void notifyDataSetChanged(){
823
821
}
824
822
}
825
823
824
+ private OnClickListener createHeaderOnClickListener (final View parent_layout ){
825
+ return new OnClickListener () {
826
+ @ Override
827
+ public void onClick (View v ) {
828
+ int pos = mParentLayout .indexOfChild (parent_layout );
829
+ scrollToColumn (pos ,true );
830
+ headerClickListener .onClick (v ,pos );
831
+ }
832
+ };
833
+ }
834
+
835
+ private OnLongClickListener createHeaderOnLongClickListener (final ViewGroup layout ,final View parent_layout ){
836
+ return new OnLongClickListener () {
837
+ @ Override
838
+ public boolean onLongClick (View v ) {
839
+ if (mDragColumnStartCallback == null ) {
840
+ return false ;
841
+ }
842
+ originalPosition = mParentLayout .indexOfChild (parent_layout );
843
+ mDragColumnStartCallback .startDrag (layout , originalPosition );
844
+ mLastSwap = originalPosition ;
845
+ for (int i = 0 ; i < mParentLayout .getChildCount (); i ++) {
846
+ BoardItem parentView = (BoardItem ) mParentLayout .getChildAt (i );//Gets the parent layout
847
+ for (int j = 0 ; j < parentView .getChildCount (); j ++) {
848
+ View childView = ((LinearLayout ) parentView ).getChildAt (j );
849
+ scrollToColumn (originalPosition , true );
850
+ scaleView (childView , parentView , 1f , GLOBAL_SCALE );
851
+ }
852
+ }
853
+
854
+ scrollToColumn (originalPosition , false );
855
+ mCellIsMobile = true ;
856
+ mobileView = (View ) (parent_layout );
857
+ mHoverCell = getAndAddHoverView (mobileView , GLOBAL_SCALE );
858
+ mobileView .setVisibility (INVISIBLE );
859
+ return false ;
860
+ }
861
+ };
862
+ }
863
+
864
+ private OnClickListener createFooterOnClickListener (final View parent_layout ){
865
+ return new OnClickListener () {
866
+ @ Override
867
+ public void onClick (View v ) {
868
+ int column_pos = mParentLayout .indexOfChild (parent_layout );
869
+ footerClickListener .onClick (v ,column_pos );
870
+ }
871
+ };
872
+ }
873
+
826
874
public void addColumnList (@ Nullable View header , ArrayList <View > items , @ Nullable final View footer ,int column_pos ){
827
875
final BoardItem parent_layout = new BoardItem (getContext ());
828
876
parent_layout .setBackgroundColor (background_color );
@@ -854,41 +902,9 @@ public void addColumnList(@Nullable View header, ArrayList<View> items, @Nullabl
854
902
header .setId (HEADER_ID );
855
903
removeParent (header );
856
904
layout .addView (header );
857
- header .setOnClickListener (new OnClickListener () {
858
- @ Override
859
- public void onClick (View v ) {
860
- int pos = mParentLayout .indexOfChild (parent_layout );
861
- scrollToColumn (pos ,true );
862
- headerClickListener .onClick (v ,pos );
863
- }
864
- });
905
+ header .setOnClickListener (createHeaderOnClickListener (parent_layout ));
865
906
if (!boardAdapter .columns .get (column_pos ).column_locked ) {
866
- header .setOnLongClickListener (new OnLongClickListener () {
867
- @ Override
868
- public boolean onLongClick (View v ) {
869
- if (mDragColumnStartCallback == null ) {
870
- return false ;
871
- }
872
- originalPosition = mParentLayout .indexOfChild (parent_layout );
873
- mDragColumnStartCallback .startDrag (layout , originalPosition );
874
- mLastSwap = originalPosition ;
875
- for (int i = 0 ; i < mParentLayout .getChildCount (); i ++) {
876
- BoardItem parentView = (BoardItem ) mParentLayout .getChildAt (i );//Gets the parent layout
877
- for (int j = 0 ; j < parentView .getChildCount (); j ++) {
878
- View childView = ((LinearLayout ) parentView ).getChildAt (j );
879
- scrollToColumn (originalPosition , true );
880
- scaleView (childView , parentView , 1f , GLOBAL_SCALE );
881
- }
882
- }
883
-
884
- scrollToColumn (originalPosition , false );
885
- mCellIsMobile = true ;
886
- mobileView = (View ) (parent_layout );
887
- mHoverCell = getAndAddHoverView (mobileView , GLOBAL_SCALE );
888
- mobileView .setVisibility (INVISIBLE );
889
- return false ;
890
- }
891
- });
907
+ header .setOnLongClickListener (createHeaderOnLongClickListener (layout ,parent_layout ));
892
908
}
893
909
}
894
910
parent_layout .addView (scroll_view );
@@ -908,13 +924,7 @@ public boolean onLongClick(View v) {
908
924
layout .addView (footer );
909
925
footer_layout .setLayoutParams (params );
910
926
parent_layout .addView (footer_layout );
911
- footer .setOnClickListener (new OnClickListener () {
912
- @ Override
913
- public void onClick (View v ) {
914
- int column_pos = mParentLayout .indexOfChild (parent_layout );
915
- footerClickListener .onClick (v ,column_pos );
916
- }
917
- });
927
+ footer .setOnClickListener (createFooterOnClickListener (parent_layout ));
918
928
footer .post (new Runnable () {
919
929
@ Override
920
930
public void run () {
0 commit comments