Skip to content

Commit bef0f10

Browse files
committed
Progress point -- Preparing to test scrolling with the prefetch updater thread running
1 parent 1b1ac24 commit bef0f10

9 files changed

Lines changed: 412 additions & 606 deletions

File tree

AndroidFilePickerLightLibrary/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ def getGitCommitDate() {
2424
}
2525

2626
android {
27+
2728
compileSdkVersion 30
2829
buildToolsVersion "30.0.0"
2930

AndroidFilePickerLightLibrary/src/main/java/com/maxieds/androidfilepickerlightlibrary/DisplayAdapters.java

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,14 @@ public FileListAdapter(List<String> nextFileListData, List<DisplayTypes.FileType
4646
this.fileListData.addAll(nextFileListData);
4747
this.fileItemsData = new ArrayList<DisplayTypes.FileType>();
4848
this.fileItemsData.addAll(nextFileItemsData);
49-
this.setHasStableIds(true); // TODO ???
49+
this.setHasStableIds(true); // ???
5050
}
5151

5252
public void reloadDataSets(List<String> nextDataSet, List<DisplayTypes.FileType> nextFileItemsData, boolean notifyAdapter) {
53-
//DisplayFragments.getInstance().getMainRecyclerView().setLayoutFrozen(true);
54-
int fileItemsListSize = fileListData.size();
5553
fileListData.clear();
5654
fileListData.addAll(nextDataSet);
5755
fileItemsData.clear();
5856
fileItemsData.addAll(nextFileItemsData);
59-
//DisplayFragments.getInstance().getMainRecyclerView().setLayoutFrozen(false);
60-
//notifyItemRangeRemoved(0, fileItemsListSize);
6157
if(notifyAdapter) {
6258
notifyDataSetChanged();
6359
}
@@ -71,15 +67,15 @@ public void reloadDataSets(List<String> nextDataSet, List<DisplayTypes.FileType>
7167

7268
@Override
7369
public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
74-
//Log.i(LOGTAG,"onCreateViewHolder");
70+
Log.i(LOGTAG,"onCreateViewHolder");
7571
View rowItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_file_entry_item, parent, false);
7672
return new BaseViewHolder(rowItem);
7773
}
7874

7975
@Override
8076
public void onBindViewHolder(BaseViewHolder bvHolder, int posIndex) {
8177
bvHolder.getDisplayText().setText(fileListData.get(posIndex));
82-
//Log.i(LOGTAG, String.format(Locale.getDefault(), "onBindViewHolder @ %d -- %s", posIndex, bvHolder.getDisplayText().getText()));
78+
Log.i(LOGTAG, String.format(Locale.getDefault(), "onBindViewHolder @ %d -- %s", posIndex, bvHolder.getDisplayText().getText()));
8379
if(!fileItemsData.isEmpty()) {
8480
DisplayTypes.FileType fileItem = fileItemsData.get(posIndex);
8581
fileItem.setLayoutContainer(bvHolder.getMainViewLayoutContainer());
@@ -89,18 +85,18 @@ public void onBindViewHolder(BaseViewHolder bvHolder, int posIndex) {
8985
}
9086

9187
@Override
92-
public void onViewRecycled(BaseViewHolder bvHolder){
93-
//Log.i(LOGTAG,"onViewRecycled: " + bvHolder);
88+
public void onViewRecycled(BaseViewHolder bvHolder) {
89+
Log.i(LOGTAG,"onViewRecycled: " + bvHolder);
9490
}
9591

9692
@Override
97-
public void onViewDetachedFromWindow(BaseViewHolder bvHolder){
98-
//Log.i(LOGTAG,"onViewDetachedFromWindow: " + bvHolder);
93+
public void onViewDetachedFromWindow(BaseViewHolder bvHolder) {
94+
Log.i(LOGTAG,"onViewDetachedFromWindow: " + bvHolder);
9995
}
10096

10197
@Override
102-
public void onViewAttachedToWindow(BaseViewHolder bvHolder){
103-
//Log.i(LOGTAG,"onViewAttachedToWindow: " + bvHolder);
98+
public void onViewAttachedToWindow(BaseViewHolder bvHolder) {
99+
Log.i(LOGTAG,"onViewAttachedToWindow: " + bvHolder);
104100
}
105101

106102
@Override
@@ -121,7 +117,8 @@ else if(fileItemsData.get(posIndex) != null) {
121117

122118
@Override
123119
public int getItemViewType(int posIndex) {
124-
return posIndex;
120+
//return posIndex;
121+
return VIEW_TYPE_FILE_ITEM;
125122
}
126123

127124
}
@@ -130,6 +127,7 @@ public static class BaseViewHolder extends RecyclerView.ViewHolder implements Vi
130127

131128
private View fileItemContainerView;
132129
public TextView displayText;
130+
private int initIndexPos;
133131

134132
private GestureDetector gestureDetector = new GestureDetector(FileChooserActivity.getInstance(), new GestureDetector.SimpleOnGestureListener() {
135133
@Override
@@ -138,6 +136,7 @@ public boolean onSingleTapUp(MotionEvent e) {
138136
}
139137
@Override
140138
public void onLongPress(MotionEvent e) {
139+
Log.i(LOGTAG, "onLongPress::onLongPress");
141140
RecyclerView mainFileListRecyclerView = DisplayFragments.getMainRecyclerView();
142141
View childView = mainFileListRecyclerView.findChildViewUnder(e.getX(), e.getY());
143142
if(childView != null) {
@@ -150,14 +149,19 @@ public void onLongPress(MotionEvent e) {
150149
public BaseViewHolder(View v) {
151150
super(v);
152151
fileItemContainerView = v;
152+
v.setClickable(true);
153+
v.setFocusable(true);
153154
v.setOnClickListener(this);
154155
v.setOnLongClickListener(this);
155156
displayText = (TextView) v.findViewById(R.id.fileEntryBaseName);
156-
//setIsRecyclable(false);
157+
initIndexPos = -1;
158+
setIsRecyclable(false); // ???
157159
}
158160

159161
public TextView getDisplayText() { return displayText; }
160162

163+
public int getInitialIndexPosition() { return initIndexPos; }
164+
161165
public View getMainViewLayoutContainer() { return fileItemContainerView; }
162166

163167
public boolean performNewFileItemClick(DisplayTypes.FileType fileItem) {
@@ -217,7 +221,7 @@ else if(DisplayFragments.getInstance().curSelectionCount >= DisplayFragments.get
217221

218222
@Override
219223
public void onClick(View v) {
220-
Log.i(LOGTAG, "onClick");
224+
Log.i(LOGTAG, "BaseViewHolder::onClick");
221225
int fileItemPosIndex = DisplayFragments.RecyclerViewUtils.findFileItemIndexByLayout(v);
222226
if(fileItemPosIndex < 0) {
223227
return;
@@ -234,7 +238,7 @@ public void onClick(View v) {
234238

235239
@Override
236240
public boolean onLongClick(View v) {
237-
Log.i(LOGTAG, "onLongClick");
241+
Log.i(LOGTAG, "BaseViewHolder::onLongClick");
238242
int fileItemPosIndex = DisplayFragments.RecyclerViewUtils.findFileItemIndexByLayout(v);
239243
if(fileItemPosIndex < 0) {
240244
return false;

AndroidFilePickerLightLibrary/src/main/java/com/maxieds/androidfilepickerlightlibrary/DisplayFragments.java

Lines changed: 46 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ public class DisplayFragments {
4848
public FileFilter.FileItemsSortFunc localFilesListSortFunc;
4949

5050
public DisplayFragments() {
51-
folderIconInst = DrawUtils.getDrawableFromResource(R.drawable.folder_icon32);
52-
fileIconInst = DrawUtils.getDrawableFromResource(R.drawable.generic_file_icon32);
53-
hiddenFileIconInst = DrawUtils.getDrawableFromResource(R.drawable.hidden_file_icon32);
51+
folderIconInst = DisplayUtils.getDrawableFromResource(R.drawable.folder_icon32);
52+
fileIconInst = DisplayUtils.getDrawableFromResource(R.drawable.generic_file_icon32);
53+
hiddenFileIconInst = DisplayUtils.getDrawableFromResource(R.drawable.hidden_file_icon32);
5454
localFilesListFilter = null;
5555
localFilesListSortFunc = null;
5656
}
@@ -245,88 +245,70 @@ public static int findFileItemIndexByLayout(View layoutDisplayView) {
245245
return -1;
246246
}
247247

248-
public static boolean insertItemsAtTop(int itemCount,
248+
public static void insertItemsAtTop(int itemCount,
249249
List<String> fileNamesList, List<DisplayTypes.FileType> fileItemsList) {
250-
251-
FileChooserRecyclerView mainRV = DisplayFragments.getInstance().getMainRecyclerView();
252-
FileChooserRecyclerView.LayoutManager rvLayoutManager = (FileChooserRecyclerView.LayoutManager) mainRV.getLayoutManager();
253-
DisplayAdapters.FileListAdapter rvAdapter = (DisplayAdapters.FileListAdapter) mainRV.getAdapter();
254-
rvLayoutManager.setInsertAtFrontMode();
255-
// REMOVE THE VIEWS MANUALLY ...
256-
rvLayoutManager.restoreDefaultMode();
257-
return true;
258-
259-
}
260-
261-
public static boolean appendItemsToBack(int itemCount,
262-
List<String> fileNamesList, List<DisplayTypes.FileType> fileItemsList) {
263-
264250
FileChooserRecyclerView mainRV = DisplayFragments.getInstance().getMainRecyclerView();
265251
FileChooserRecyclerView.LayoutManager rvLayoutManager = (FileChooserRecyclerView.LayoutManager) mainRV.getLayoutManager();
266252
DisplayAdapters.FileListAdapter rvAdapter = (DisplayAdapters.FileListAdapter) mainRV.getAdapter();
267-
rvLayoutManager.setAppendToBackMode();
268-
// REMOVE THE VIEWS MANUALLY ...
269-
rvLayoutManager.restoreDefaultMode();
270-
return true;
271-
253+
DisplayFragments displayCtx = DisplayFragments.getInstance();
254+
fileItemsList.addAll(displayCtx.activeFileItemsDataList);
255+
displayCtx.activeFileItemsDataList = fileItemsList;
256+
fileNamesList.addAll(displayCtx.fileItemBasePathsList);
257+
displayCtx.fileItemBasePathsList = fileNamesList;
272258
}
273259

274-
public static boolean removeItemsAtTop(int itemCount) {
275-
260+
public static void appendItemsToBack(int itemCount,
261+
List<String> fileNamesList, List<DisplayTypes.FileType> fileItemsList) {
276262
FileChooserRecyclerView mainRV = DisplayFragments.getInstance().getMainRecyclerView();
277263
FileChooserRecyclerView.LayoutManager rvLayoutManager = (FileChooserRecyclerView.LayoutManager) mainRV.getLayoutManager();
278264
DisplayAdapters.FileListAdapter rvAdapter = (DisplayAdapters.FileListAdapter) mainRV.getAdapter();
279-
rvLayoutManager.setAppendToBackMode();
280-
// REMOVE THE VIEWS MANUALLY ...
281-
rvLayoutManager.restoreDefaultMode();
282-
return true;
283-
265+
DisplayFragments displayCtx = DisplayFragments.getInstance();
266+
displayCtx.activeFileItemsDataList.addAll(fileItemsList);
267+
displayCtx.fileItemBasePathsList.addAll(fileNamesList);
284268
}
285269

286-
public static boolean removeItemsFromBack(int itemCount) {
287-
270+
public static void removeItemsAtTop(int itemCount) {
288271
FileChooserRecyclerView mainRV = DisplayFragments.getInstance().getMainRecyclerView();
289272
FileChooserRecyclerView.LayoutManager rvLayoutManager = (FileChooserRecyclerView.LayoutManager) mainRV.getLayoutManager();
290273
DisplayAdapters.FileListAdapter rvAdapter = (DisplayAdapters.FileListAdapter) mainRV.getAdapter();
291-
rvLayoutManager.setAppendToBackMode();
292-
// REMOVE THE VIEWS MANUALLY ...
293-
rvLayoutManager.restoreDefaultMode();
294-
return true;
295-
274+
DisplayFragments displayCtx = DisplayFragments.getInstance();
275+
int startListIndex = 0;
276+
int endListIndex = itemCount - 1;
277+
displayCtx.activeFileItemsDataList = new ArrayList<DisplayTypes.FileType>(
278+
displayCtx.activeFileItemsDataList.subList(
279+
startListIndex,
280+
endListIndex
281+
)
282+
);
283+
displayCtx.fileItemBasePathsList = new ArrayList<String>(
284+
displayCtx.fileItemBasePathsList.subList(
285+
startListIndex,
286+
endListIndex
287+
)
288+
);
296289
}
297290

298-
/*public static boolean appendItemsToBackTrimmedFromFront(int itemCount,
299-
List<String> fileNamesList, List<DisplayTypes.FileType> fileItemsList) {
300-
291+
public static void removeItemsFromBack(int itemCount) {
301292
FileChooserRecyclerView mainRV = DisplayFragments.getInstance().getMainRecyclerView();
302293
FileChooserRecyclerView.LayoutManager rvLayoutManager = (FileChooserRecyclerView.LayoutManager) mainRV.getLayoutManager();
303294
DisplayAdapters.FileListAdapter rvAdapter = (DisplayAdapters.FileListAdapter) mainRV.getAdapter();
304-
rvLayoutManager.setAppendToBackMode();
305-
rvAdapter.reloadDataSets(fileNamesList, fileItemsList, false);
306-
rvAdapter.notifyItemRangeRemoved(0, itemCount);
307-
rvAdapter.notifyItemRangeChanged(0, fileItemsList.size());
308-
rvAdapter.notifyItemRangeInserted(fileItemsList.size() - itemCount, itemCount);
309-
rvLayoutManager.restoreDefaultMode();
310-
return true;
311-
295+
DisplayFragments displayCtx = DisplayFragments.getInstance();
296+
int startListIndex = displayCtx.activeFileItemsDataList.size() - itemCount - 1;
297+
int endListIndex = displayCtx.activeFileItemsDataList.size();
298+
displayCtx.activeFileItemsDataList = new ArrayList<DisplayTypes.FileType>(
299+
displayCtx.activeFileItemsDataList.subList(
300+
startListIndex,
301+
endListIndex
302+
)
303+
);
304+
displayCtx.fileItemBasePathsList = new ArrayList<String>(
305+
displayCtx.fileItemBasePathsList.subList(
306+
startListIndex,
307+
endListIndex
308+
)
309+
);
312310
}
313311

314-
public static boolean prependItemsAtTopTrimmedFromBack(int itemCount,
315-
List<String> fileNamesList, List<DisplayTypes.FileType> fileItemsList) {
316-
317-
FileChooserRecyclerView mainRV = DisplayFragments.getInstance().getMainRecyclerView();
318-
FileChooserRecyclerView.LayoutManager rvLayoutManager = (FileChooserRecyclerView.LayoutManager) mainRV.getLayoutManager();
319-
DisplayAdapters.FileListAdapter rvAdapter = (DisplayAdapters.FileListAdapter) mainRV.getAdapter();
320-
rvLayoutManager.setAppendToBackMode();
321-
rvAdapter.reloadDataSets(fileNamesList, fileItemsList, false);
322-
rvAdapter.notifyItemRangeRemoved(fileNamesList.size() - itemCount, itemCount);
323-
rvAdapter.notifyItemRangeChanged(0, fileItemsList.size());
324-
rvAdapter.notifyItemRangeInserted(0, itemCount);
325-
rvLayoutManager.restoreDefaultMode();
326-
return true;
327-
328-
}*/
329-
330312
}
331313

332314
public static class FileListItemFragment {

0 commit comments

Comments
 (0)