diff options
| author | Richard MacGregor <rmacgregor@cyngn.com> | 2015-08-20 16:05:17 -0700 |
|---|---|---|
| committer | Richard MacGregor <rmacgregor@cyngn.com> | 2015-08-21 11:58:13 -0700 |
| commit | af500818a90bbe01ca1f932200abee46e43523b2 (patch) | |
| tree | 1c1c677ca1df81f6bb99dd5d2e7942a5eae18b9e | |
| parent | 8f6788469828c169c97529252bbbce12e5dbfed1 (diff) | |
| download | android_packages_apps_CMFileManager-af500818a90bbe01ca1f932200abee46e43523b2.tar.gz android_packages_apps_CMFileManager-af500818a90bbe01ca1f932200abee46e43523b2.tar.bz2 android_packages_apps_CMFileManager-af500818a90bbe01ca1f932200abee46e43523b2.zip | |
FileManager: Fix shortcuts
Fix shortcuts behavior when FileManager is already open.
Repro:
1) Open FileManager
2) Create shortcut for folder
3) Navigate to another folder (not including new folder)
4) Switch to homescreen (launcher)
5) Select the shortcut created in step 2
Expected behavior:
Navigate to shortcut folder
Observed behavior:
FileManager shows last navigated directory (before going to launcher)
(cherry picked from commit 8f0fb94de32e1ea773ce165bf5bc95122099171d)
Change-Id: Icd03d38aa1d879d46f1c9a6d4c7efb15c3fb0b3f
Ticket: QRDL-1034
3 files changed, 16 insertions, 5 deletions
diff --git a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java index 13131d07..ff5d9ab3 100644 --- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java @@ -667,8 +667,12 @@ public class NavigationActivity extends Activity */ @Override protected void onNewIntent(Intent intent) { + // If no directory specified, restore current directory + final String navigateTo = intent.getStringExtra(EXTRA_NAVIGATE_TO); + final boolean restore = TextUtils.isEmpty(navigateTo); + //Initialize navigation - initNavigation(this.mCurrentNavigationView, true, intent); + initNavigation(this.mCurrentNavigationView, restore, intent); //Check the intent action checkIntent(intent); diff --git a/src/com/cyanogenmod/filemanager/parcelables/NavigationViewInfoParcelable.java b/src/com/cyanogenmod/filemanager/parcelables/NavigationViewInfoParcelable.java index fd4983f7..0f286f75 100644 --- a/src/com/cyanogenmod/filemanager/parcelables/NavigationViewInfoParcelable.java +++ b/src/com/cyanogenmod/filemanager/parcelables/NavigationViewInfoParcelable.java @@ -18,6 +18,7 @@ package com.cyanogenmod.filemanager.parcelables; import android.os.Parcel; import android.os.Parcelable; +import android.text.TextUtils; import com.cyanogenmod.filemanager.FileManagerApplication; import com.cyanogenmod.filemanager.R; @@ -64,11 +65,10 @@ public class NavigationViewInfoParcelable extends HistoryNavigable { */ @Override public String getTitle() { - if (this.mCurrentDir.compareTo(FileHelper.ROOT_DIRECTORY) == 0) { - FileManagerApplication.getInstance().getResources().getString( - R.string.root_directory_name); + if (!TextUtils.isEmpty(mCurrentDir)) { + return new File(this.mCurrentDir).getName(); } - return new File(this.mCurrentDir).getName(); + return null; } /** diff --git a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java index 24375cba..5fb786a5 100644 --- a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java +++ b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java @@ -1036,6 +1036,13 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe final String newDir, final boolean addToHistory, final boolean reload, final boolean useCurrent, final SearchInfoParcelable searchInfo, final FileSystemObject scrollTo) { + if (mNavigationTask != null) { + this.mCurrentDir = this.mPreviousDir; + this.mPreviousDir = null; + mNavigationTask.cancel(true); + mNavigationTask = null; + } + this.mPreviousDir = this.mCurrentDir; this.mCurrentDir = newDir; mNavigationTask = new NavigationTask(useCurrent, addToHistory, reload, |
