|
@@ -113,7 +113,6 @@ import org.greenrobot.eventbus.Subscribe;
|
|
|
import org.greenrobot.eventbus.ThreadMode;
|
|
|
|
|
|
import java.io.File;
|
|
|
-import java.lang.ref.WeakReference;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collection;
|
|
|
import java.util.Collections;
|
|
@@ -1384,7 +1383,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
|
|
|
return mAdapter;
|
|
|
}
|
|
|
|
|
|
- private void setTitle() {
|
|
|
+ protected void setTitle() {
|
|
|
// set title
|
|
|
|
|
|
if (getActivity() instanceof FileDisplayActivity && currentSearchType != null) {
|
|
@@ -1428,7 +1427,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void setEmptyView(SearchEvent event) {
|
|
|
+ protected void setEmptyView(SearchEvent event) {
|
|
|
if (event != null) {
|
|
|
switch (event.getSearchType()) {
|
|
|
case FILE_SEARCH:
|
|
@@ -1510,87 +1509,6 @@ public class OCFileListFragment extends ExtendedListFragment implements
|
|
|
handleSearchEvent(event);
|
|
|
}
|
|
|
|
|
|
- private static class SearchAsyncTask extends AsyncTask<Void, Void, Boolean> {
|
|
|
-
|
|
|
- private final WeakReference<FileFragment.ContainerActivity> activityReference;
|
|
|
- private final WeakReference<OCFileListFragment> fragmentReference;
|
|
|
- private final RemoteOperation remoteOperation;
|
|
|
- private final User currentUser;
|
|
|
- private final SearchEvent event;
|
|
|
-
|
|
|
- private SearchAsyncTask(final FileFragment.ContainerActivity containerActivity, final OCFileListFragment fragment, final RemoteOperation remoteOperation, final User currentUser, final SearchEvent event) {
|
|
|
- this.activityReference = new WeakReference<>(containerActivity);
|
|
|
- this.fragmentReference = new WeakReference<>(fragment);
|
|
|
- this.remoteOperation = remoteOperation;
|
|
|
- this.currentUser = currentUser;
|
|
|
- this.event = event;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- protected void onPreExecute() {
|
|
|
- final OCFileListFragment fragment = fragmentReference.get();
|
|
|
- if (fragment != null) {
|
|
|
- new Handler(Looper.getMainLooper()).post(() -> {
|
|
|
- fragment.setLoading(true);
|
|
|
- fragment.setEmptyListLoadingMessage();
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- protected Boolean doInBackground(Void... voids) {
|
|
|
- final OCFileListFragment fragment = fragmentReference.get();
|
|
|
- if (fragment == null || isCancelled() || fragment.getContext() == null) {
|
|
|
- return Boolean.FALSE;
|
|
|
- }
|
|
|
-
|
|
|
- fragment.setTitle();
|
|
|
- RemoteOperationResult remoteOperationResult = remoteOperation.execute(
|
|
|
- currentUser.toPlatformAccount(), fragment.getContext());
|
|
|
-
|
|
|
- FileDataStorageManager storageManager = getFileDataStorageManager();
|
|
|
-
|
|
|
- if (remoteOperationResult.isSuccess() && remoteOperationResult.getResultData() != null
|
|
|
- && !isCancelled() && fragment.searchFragment) {
|
|
|
- fragment.searchEvent = event;
|
|
|
-
|
|
|
- if (remoteOperationResult.getResultData() == null || ((List) remoteOperationResult.getResultData()).isEmpty()) {
|
|
|
- fragment.setEmptyView(event);
|
|
|
- } else {
|
|
|
- fragment.mAdapter.setData(((RemoteOperationResult<List>) remoteOperationResult).getResultData(),
|
|
|
- fragment.currentSearchType,
|
|
|
- storageManager,
|
|
|
- fragment.mFile,
|
|
|
- true);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return remoteOperationResult.isSuccess();
|
|
|
- }
|
|
|
-
|
|
|
- @Nullable
|
|
|
- private FileDataStorageManager getFileDataStorageManager() {
|
|
|
- FileDataStorageManager storageManager = null;
|
|
|
- final FileFragment.ContainerActivity containerActivity = activityReference.get();
|
|
|
- if (containerActivity != null && containerActivity.getStorageManager() != null) {
|
|
|
- storageManager = containerActivity.getStorageManager();
|
|
|
- }
|
|
|
- return storageManager;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- protected void onPostExecute(Boolean bool) {
|
|
|
- final OCFileListFragment fragment = fragmentReference.get();
|
|
|
- if (fragment != null) {
|
|
|
- fragment.setLoading(false);
|
|
|
- if (!isCancelled()) {
|
|
|
- fragment.mAdapter.notifyDataSetChanged();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
private void handleSearchEvent(SearchEvent event) {
|
|
|
if (SearchRemoteOperation.SearchType.PHOTO_SEARCH == event.getSearchType()) {
|
|
|
return;
|
|
@@ -1638,7 +1556,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
|
|
|
}
|
|
|
|
|
|
|
|
|
- remoteOperationAsyncTask = new SearchAsyncTask(mContainerActivity, this, remoteOperation, currentUser, event);
|
|
|
+ remoteOperationAsyncTask = new OCFileListSearchAsyncTask(mContainerActivity, this, remoteOperation, currentUser, event);
|
|
|
|
|
|
remoteOperationAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
|
|
}
|