aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorherriojr <jherriott@cyngn.com>2015-08-05 12:24:56 -0700
committerJon Herriott <jherriott@cyngn.com>2015-08-05 17:01:58 -0700
commitf8d0208f5a91aa09404e6e9535d4588103392d7e (patch)
tree47337c399c2db1d2725f9bbb946047f330a55f35
parent86efb31b8bde6894f0ca0ac5e57c35807755ba79 (diff)
downloadandroid_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.java1
-rw-r--r--src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java10
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) {