OSDN Git Service

FileManager: Fix shortcuts
authorRichard MacGregor <rmacgregor@cyngn.com>
Thu, 20 Aug 2015 23:05:17 +0000 (16:05 -0700)
committerRichard MacGregor <rmacgregor@cyngn.com>
Fri, 21 Aug 2015 18:57:49 +0000 (11:57 -0700)
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

src/com/cyanogenmod/filemanager/activities/NavigationActivity.java
src/com/cyanogenmod/filemanager/parcelables/NavigationViewInfoParcelable.java
src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java

index 358549b..e579832 100755 (executable)
@@ -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);
index fd4983f..0f286f7 100644 (file)
@@ -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;
     }
 
     /**
index a081246..8adf273 100755 (executable)
@@ -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,