@@ -47,21 +47,22 @@ public FileListAdapter(List<String> nextFileListData, List<DisplayTypes.FileType
4747 this .fileListData .addAll (nextFileListData );
4848 this .fileItemsData = new ArrayList <DisplayTypes .FileType >();
4949 this .fileItemsData .addAll (nextFileItemsData );
50+ //this.setHasStableIds(true);
5051 notifyDataSetChanged ();
5152 }
5253
5354 @ Override
5455 public BaseViewHolder onCreateViewHolder (ViewGroup parent , int viewType ) {
55- Log .i (LOGTAG ,"onCreateViewHolder" );
56+ // Log.i(LOGTAG,"onCreateViewHolder");
5657 View rowItem = LayoutInflater .from (parent .getContext ()).inflate (R .layout .single_file_entry_item , parent , false );
5758 return new BaseViewHolder (rowItem );
5859 }
5960
6061 @ Override
6162 public void onBindViewHolder (BaseViewHolder bvHolder , int posIndex ) {
62- Log .i (LOGTAG ,"onCreateViewHolder @ " + posIndex );
63+ // Log.i(LOGTAG,"onCreateViewHolder @ " + posIndex);
6364 bvHolder .getDisplayText ().setText (fileListData .get (posIndex ));
64- Log .i (LOGTAG , String .format (Locale .getDefault (), "onBindViewHolder @ %d -- %s" , posIndex , bvHolder .getDisplayText ().getText ()));
65+ // Log.i(LOGTAG, String.format(Locale.getDefault(), "onBindViewHolder @ %d -- %s", posIndex, bvHolder.getDisplayText().getText()));
6566 if (!fileItemsData .isEmpty ()) {
6667 DisplayTypes .FileType fileItem = fileItemsData .get (posIndex );
6768 bvHolder .setFileItemData (fileItem );
@@ -72,17 +73,17 @@ public void onBindViewHolder(BaseViewHolder bvHolder, int posIndex) {
7273
7374 @ Override
7475 public void onViewRecycled (BaseViewHolder bvHolder ){
75- Log .i (LOGTAG ,"onViewRecycled: " + bvHolder );
76+ // Log.i(LOGTAG,"onViewRecycled: " + bvHolder);
7677 }
7778
7879 @ Override
7980 public void onViewDetachedFromWindow (BaseViewHolder bvHolder ){
80- Log .i (LOGTAG ,"onViewDetachedFromWindow: " + bvHolder );
81+ // Log.i(LOGTAG,"onViewDetachedFromWindow: " + bvHolder);
8182 }
8283
8384 @ Override
8485 public void onViewAttachedToWindow (BaseViewHolder bvHolder ){
85- Log .i (LOGTAG ,"onViewAttachedToWindow: " + bvHolder );
86+ // Log.i(LOGTAG,"onViewAttachedToWindow: " + bvHolder);
8687 }
8788
8889 @ Override
@@ -137,19 +138,22 @@ public DisplayTypes.FileType getFileItemReference() {
137138 public View getMainViewLayoutContainer () { return fileItemContainerView ; }
138139
139140 public boolean performNewFileItemClick (DisplayTypes .FileType fileItem ) {
140- return performNewFileItemClick (fileItem .getLayoutContainer ().findViewById (R .id .fileSelectCheckBox ), fileItem );
141+ if (fileItem .getLayoutContainer () != null ) {
142+ return performNewFileItemClick (fileItem .getLayoutContainer ().findViewById (R .id .fileSelectCheckBox ), fileItem );
143+ }
144+ return false ;
141145 }
142146
143147 public static boolean performNewFileItemClick (CheckBox cbView , DisplayTypes .FileType fileItem ) {
144148 if (fileItem == null ) {
145149 return false ;
146150 }
147151 boolean isDir = fileItem .isDirectory ();
148- if (!isDir && !DisplayFragments .allowSelectFiles ) {
152+ if (!isDir && !DisplayFragments .getInstance (). allowSelectFiles ) {
149153 Log .i (LOGTAG , "Blocking file item selection I" );
150154 return false ;
151155 }
152- else if (isDir && !DisplayFragments .allowSelectFolders ) {
156+ else if (isDir && !DisplayFragments .getInstance (). allowSelectFolders ) {
153157 Log .i (LOGTAG , "Blocking file item selection II" );
154158 return false ;
155159 }
@@ -162,26 +166,27 @@ else if(isDir && !DisplayFragments.allowSelectFolders) {
162166 fileItem .setChecked (false );
163167 selectionMarker .setChecked (false );
164168 selectionMarker .setEnabled (true );
165- DisplayFragments .activeSelectionsList .remove (fileItem );
166- DisplayFragments .curSelectionCount --;
169+ DisplayFragments .getInstance (). activeSelectionsList .remove (fileItem );
170+ DisplayFragments .getInstance (). curSelectionCount --;
167171 Log .i (LOGTAG , "DE-Selected next checkbox (file item)" );
168172 return true ;
169173 }
170- else if (DisplayFragments .curSelectionCount >= DisplayFragments .maxAllowedSelections ) {
174+ else if (DisplayFragments .getInstance (). curSelectionCount >= DisplayFragments . getInstance () .maxAllowedSelections ) {
171175 return false ;
172176 }
173177 fileItem .setChecked (true );
174178 selectionMarker .setChecked (true );
175179 selectionMarker .setEnabled (true );
176- DisplayFragments .activeSelectionsList .add (fileItem );
177- DisplayFragments .curSelectionCount ++;
180+ DisplayFragments .getInstance (). activeSelectionsList .add (fileItem );
181+ DisplayFragments .getInstance (). curSelectionCount ++;
178182 Log .i (LOGTAG , "Selected next checkbox (file item)" );
179183 return true ;
180184 }
181185
182186 @ Override
183187 public void onClick (View v ) {
184- if (fileItem != null && (!fileItem .isDirectory () || DisplayFragments .allowSelectFolders )) {
188+ Log .i (LOGTAG , "onClick" );
189+ if (fileItem != null && (!fileItem .isDirectory () || DisplayFragments .getInstance ().allowSelectFolders )) {
185190 if (performNewFileItemClick (fileItem )) {
186191 String filePathType = fileItem .isDirectory () ? "DIR" : "FILE" ;
187192 String displaySelectMsg = String .format (Locale .getDefault (), "Selected %s \" %s\" ." , filePathType , fileItem .getBaseName ());
@@ -192,6 +197,7 @@ public void onClick(View v) {
192197
193198 @ Override
194199 public boolean onLongClick (View v ) {
200+ Log .i (LOGTAG , "onLongClick" );
195201 if (fileItem != null && !fileItem .isDirectory ()) {
196202 if (performNewFileItemClick (fileItem )) {
197203 String displaySelectMsg = String .format (Locale .getDefault (), "Selected FILE \" %s\" ." , fileItem .getBaseName ());
@@ -206,15 +212,16 @@ public boolean onLongClick(View v) {
206212 if (nextFolder == null ) {
207213 return false ;
208214 }
209- DisplayTypes .DirectoryResultContext workingFolder = DisplayTypes .DirectoryResultContext .pathHistoryStack .peek ();
210- DisplayTypes .DirectoryResultContext .pathHistoryStack .push (nextFolder );
215+ DisplayTypes .DirectoryResultContext workingFolder = DisplayFragments .getInstance ().pathHistoryStack .peek ();
216+ DisplayFragments .getInstance ().pathHistoryStack .push (nextFolder );
217+ int fileItemPosIndex = DisplayFragments .getInstance ().activeFileItemsDataList .lastIndexOf (fileItem );
211218 if (workingFolder == null ) {
212- workingFolder .loadNextFolderAtIndex (true );
213- DisplayFragments .descendIntoNextDirectory (true );
219+ nextFolder .loadNextFolderAtIndex (fileItemPosIndex , true );
220+ DisplayFragments .getInstance (). descendIntoNextDirectory (true );
214221 }
215222 else {
216- workingFolder .loadNextFolderAtIndex (fileItem . getRelativeCursorPosition () , false );
217- DisplayFragments .descendIntoNextDirectory (false );
223+ nextFolder .loadNextFolderAtIndex (fileItemPosIndex , false );
224+ DisplayFragments .getInstance (). descendIntoNextDirectory (false );
218225 }
219226 String displayRecurseMsg = String .format (Locale .getDefault (), "Descending recursively into DIR \" %s\" ." , fileItem .getBaseName ());
220227 DisplayUtils .displayToastMessageShort (displayRecurseMsg );
0 commit comments