diff options
| author | herriojr <jherriott@cyngn.com> | 2015-07-21 09:32:29 -0700 |
|---|---|---|
| committer | Jon Herriott <jherriott@cyngn.com> | 2015-07-22 09:37:09 -0700 |
| commit | 82efc98e8b1bc96728c0ee6a5fbc374f230e443c (patch) | |
| tree | 127ca78444dd0fbcb5329cfcc4b8191ce6f1e8a4 | |
| parent | 25c26ac8ac712f4d365499e62d74d8799f4ec433 (diff) | |
| download | android_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.java | 24 |
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); } |
