diff options
| author | herriojr <jherriott@cyngn.com> | 2015-08-05 12:24:56 -0700 |
|---|---|---|
| committer | Jon Herriott <jherriott@cyngn.com> | 2015-08-05 17:01:58 -0700 |
| commit | f8d0208f5a91aa09404e6e9535d4588103392d7e (patch) | |
| tree | 47337c399c2db1d2725f9bbb946047f330a55f35 | |
| parent | 86efb31b8bde6894f0ca0ac5e57c35807755ba79 (diff) | |
| download | android_packages_apps_CMFileManager-f8d0208f5a91aa09404e6e9535d4588103392d7e.tar.gz android_packages_apps_CMFileManager-f8d0208f5a91aa09404e6e9535d4588103392d7e.tar.bz2 android_packages_apps_CMFileManager-f8d0208f5a91aa09404e6e9535d4588103392d7e.zip | |
Fixed search to actually open the clicked folder
When a folder was clicked in a search, what was happening is the
refresh() in onStart() was being executed after onActivityResult(), so
the changeCurrentDir() executed in onActivityResult() was being
overriden by the refresh in onStart(). Since the mCurrentDir wasn't
being set until the NavigationTask ends, it would always go back to
the original directory. The change is to make the refresh not happen
if a NavigationTask is currently under way.
Change-Id: I5c354554c9b15fc9d14b4665852b40fb6a1f8853
Ticket: QRDL-932
(cherry picked from commit c740f92994c3e8dbbf985ef18d7d639756f1e0a9)
| -rw-r--r-- | src/com/cyanogenmod/filemanager/activities/NavigationActivity.java | 1 | ||||
| -rw-r--r-- | src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java | 10 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java index 100330bf..13131d07 100644 --- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java @@ -651,6 +651,7 @@ public class NavigationActivity extends Activity intent.putExtra(EXTRA_ADD_TO_HISTORY, false); initNavigation(NavigationActivity.this.mCurrentNavigationView, false, intent); } + getCurrentNavigationView().refresh(true); } } diff --git a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java index 277232cd..ec841409 100644 --- a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java +++ b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java @@ -438,6 +438,8 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe // Restrictions private Map<DisplayRestrictions, Object> mRestrictions; + private NavigationTask mNavigationTask; + /** * @hide */ @@ -814,7 +816,7 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe */ public void refresh(FileSystemObject scrollTo) { //Check that current directory was set - if (this.mCurrentDir == null || this.mFiles == null) { + if (this.mCurrentDir == null || this.mFiles == null || this.mNavigationTask != null) { return; } @@ -1024,9 +1026,9 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe final String newDir, final boolean addToHistory, final boolean reload, final boolean useCurrent, final SearchInfoParcelable searchInfo, final FileSystemObject scrollTo) { - NavigationTask task = new NavigationTask(useCurrent, addToHistory, reload, + mNavigationTask = new NavigationTask(useCurrent, addToHistory, reload, searchInfo, scrollTo, mRestrictions, mChRooted); - task.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, newDir); + mNavigationTask.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, newDir); } /** @@ -1109,6 +1111,8 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe FileSystemObject dir = FileHelper.createFileSystemObject(new File(newDir)); this.mOnDirectoryChangedListener.onDirectoryChanged(dir); } + + mNavigationTask = null; } finally { //If calling activity is search, then save the search history if (searchInfo != null) { |
