aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorherriojr <jherriott@cyngn.com>2015-07-21 09:32:29 -0700
committerJon Herriott <jherriott@cyngn.com>2015-07-22 09:37:09 -0700
commit82efc98e8b1bc96728c0ee6a5fbc374f230e443c (patch)
tree127ca78444dd0fbcb5329cfcc4b8191ce6f1e8a4
parent25c26ac8ac712f4d365499e62d74d8799f4ec433 (diff)
downloadandroid_packages_apps_CMFileManager-82efc98e8b1bc96728c0ee6a5fbc374f230e443c.tar.gz
android_packages_apps_CMFileManager-82efc98e8b1bc96728c0ee6a5fbc374f230e443c.tar.bz2
android_packages_apps_CMFileManager-82efc98e8b1bc96728c0ee6a5fbc374f230e443c.zip
Moved the sort of the data set off the UI Thread.
For large data sets, this can cause slowdown on older devices or if you have a significant data set size. Change-Id: I1eeea9132df0d4e5c8dad17009b648826e3386c6 Ticket: QRDL-931 (cherry picked from commit 3303817816ef785de8d29d69dddd35b4fe22c5c4)
-rw-r--r--src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java
index 88fd47b7..277232cd 100644
--- a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java
+++ b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java
@@ -220,15 +220,20 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe
private String mNewDirChecked;
private final SearchInfoParcelable mSearchInfo;
private final FileSystemObject mScrollTo;
+ private final Map<DisplayRestrictions, Object> mRestrictions;
+ private final boolean mChRooted;
public NavigationTask(boolean useCurrent, boolean addToHistory, boolean reload,
- SearchInfoParcelable searchInfo, FileSystemObject scrollTo) {
+ SearchInfoParcelable searchInfo, FileSystemObject scrollTo,
+ Map<DisplayRestrictions, Object> restrictions, boolean chRooted) {
super();
this.mUseCurrent = useCurrent;
this.mAddToHistory = addToHistory;
this.mSearchInfo = searchInfo;
this.mReload = reload;
this.mScrollTo = scrollTo;
+ this.mRestrictions = restrictions;
+ this.mChRooted = chRooted;
}
/**
@@ -281,7 +286,12 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe
if (!mUseCurrent) {
files = CommandHelper.listFiles(getContext(), mNewDirChecked, null);
}
- return files;
+
+ //Apply user preferences
+ List<FileSystemObject> sortedFiles =
+ FileHelper.applyUserPreferences(files, this.mRestrictions, this.mChRooted);
+
+ return sortedFiles;
} catch (final ConsoleAllocException e) {
//Show exception and exists
@@ -1015,7 +1025,7 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe
final boolean reload, final boolean useCurrent,
final SearchInfoParcelable searchInfo, final FileSystemObject scrollTo) {
NavigationTask task = new NavigationTask(useCurrent, addToHistory, reload,
- searchInfo, scrollTo);
+ searchInfo, scrollTo, mRestrictions, mChRooted);
task.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, newDir);
}
@@ -1063,10 +1073,6 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe
return;
}
- //Apply user preferences
- List<FileSystemObject> sortedFiles =
- FileHelper.applyUserPreferences(files, this.mRestrictions, this.mChRooted);
-
//Remove parent directory if we are in the root of a chrooted environment
if (this.mChRooted && StorageHelper.isStorageVolume(newDir)) {
if (files.size() > 0 && files.get(0) instanceof ParentDirectory) {
@@ -1083,8 +1089,8 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe
}
//Load the data
- loadData(sortedFiles);
- this.mFiles = sortedFiles;
+ loadData(files);
+ this.mFiles = files;
if (searchInfo != null) {
searchInfo.setSuccessNavigation(true);
}