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:57:49 -0700 |
commit | 17d800a94332c324c6d597dfff61e654619de04a (patch) | |
tree | d1e74a4a3906209f6dec216ca8b83b8e1a0b4820 | |
parent | d5372f98c001a58cfdf332af0875a424ca0087da (diff) | |
download | android_packages_apps_CMFileManager-17d800a94332c324c6d597dfff61e654619de04a.tar.gz android_packages_apps_CMFileManager-17d800a94332c324c6d597dfff61e654619de04a.tar.bz2 android_packages_apps_CMFileManager-17d800a94332c324c6d597dfff61e654619de04a.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)
Change-Id: I1db814a8990073f8d2de88f90b23b51a1e77cf8e
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 358549bf..e5798328 100755 --- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java @@ -668,8 +668,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 a0812469..8adf2732 100755 --- 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, |