aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/cyanogenmod/filemanager/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/cyanogenmod/filemanager/ui')
-rw-r--r--src/com/cyanogenmod/filemanager/ui/fragments/NavigationFragment.java21
-rwxr-xr-xsrc/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java44
2 files changed, 49 insertions, 16 deletions
diff --git a/src/com/cyanogenmod/filemanager/ui/fragments/NavigationFragment.java b/src/com/cyanogenmod/filemanager/ui/fragments/NavigationFragment.java
index 5e2d364e..fbd063db 100644
--- a/src/com/cyanogenmod/filemanager/ui/fragments/NavigationFragment.java
+++ b/src/com/cyanogenmod/filemanager/ui/fragments/NavigationFragment.java
@@ -116,6 +116,7 @@ import com.cyanogenmod.filemanager.ui.widgets.Breadcrumb;
import com.cyanogenmod.filemanager.ui.widgets.ButtonItem;
import com.cyanogenmod.filemanager.ui.widgets.NavigationCustomTitleView;
import com.cyanogenmod.filemanager.ui.widgets.NavigationView;
+import com.cyanogenmod.filemanager.ui.widgets.NavigationView.OnBackRequestListener;
import com.cyanogenmod.filemanager.ui.widgets.NavigationView.OnNavigationRequestMenuListener;
import com.cyanogenmod.filemanager.ui.widgets.NavigationView.OnNavigationSelectionChangedListener;
import com.cyanogenmod.filemanager.ui.widgets.SelectionView;
@@ -227,6 +228,7 @@ public class NavigationFragment extends Fragment
private View mTitleLayout;
private View mStatusBar;
+ private OnBackRequestListener mOnBackRequestListener;
private final BroadcastReceiver mNotificationReceiver = new BroadcastReceiver() {
@Override
@@ -1480,6 +1482,7 @@ public class NavigationFragment extends Fragment
//- 0
this.mNavigationViews[0] = (NavigationView) mView.findViewById(R.id.navigation_view);
this.mNavigationViews[0].setId(0);
+ this.mNavigationViews[0].setOnBackRequestListener(mOnBackRequestListener);
}
/**
@@ -2129,14 +2132,6 @@ public class NavigationFragment extends Fragment
this.mHistory.remove(i);
}
- if (mDrawerHistory.getChildCount() == 0) {
- mDrawerHistoryEmpty.setVisibility(View.VISIBLE);
- }
-
- //Navigate
- final boolean clearHistory =
- mHistoryTab.isSelected() && mHistorySaved.size() > 0;
- mClearHistory.setVisibility(clearHistory ? View.VISIBLE : View.GONE);
return true;
} catch (Throwable ex) {
@@ -2197,7 +2192,6 @@ public class NavigationFragment extends Fragment
}
//Nothing to apply
- mClearHistory.setVisibility(View.GONE);
return false;
}
@@ -2648,4 +2642,13 @@ public class NavigationFragment extends Fragment
return mDescription;
}
}
+
+ /*
+ * Method that sets the listener for back requests
+ *
+ * @param onBackRequestListener The listener reference
+ */
+ public void setOnBackRequestListener(OnBackRequestListener onBackRequestListener) {
+ mOnBackRequestListener = onBackRequestListener;
+ }
}
diff --git a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java
index 95141ac0..a33f03ca 100755
--- a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java
+++ b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java
@@ -141,6 +141,17 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe
}
/**
+ * An interface to communicate a request to go back to previous view
+ */
+ public interface OnBackRequestListener {
+ /**
+ * Method invoked when a back (previous view) is requested
+ *
+ */
+ void onBackRequested();
+ }
+
+ /**
* The navigation view mode
* @hide
*/
@@ -315,11 +326,6 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe
}
if (ex instanceof CancelledOperationException ||
ex instanceof AuthenticationFailedException) {
- if (TextUtils.isEmpty(mCurrentDir)) {
- // If currentDir isn't set, load default
- // This is local storage or root depending on mode
- mCurrentDir = FileHelper.ROOT_DIRECTORY;
- }
return null;
}
@@ -394,8 +400,20 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe
// Do animation
fadeEfect(false);
} else {
- // Reload current directory
- changeCurrentDir(mCurrentDir);
+ if (TextUtils.isEmpty(mCurrentDir)) {
+ if (mOnBackRequestListener != null) {
+ // Go back to previous view
+ post(new Runnable() {
+ @Override
+ public void run() {
+ mOnBackRequestListener.onBackRequested();
+ }
+ });
+ }
+ } else {
+ // Reload current directory
+ changeCurrentDir(mCurrentDir);
+ }
}
}
@@ -436,6 +454,7 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe
private OnNavigationRequestMenuListener mOnNavigationRequestMenuListener;
private OnFilePickedListener mOnFilePickedListener;
private OnDirectoryChangedListener mOnDirectoryChangedListener;
+ private OnBackRequestListener mOnBackRequestListener;
private boolean mChRooted;
@@ -734,6 +753,17 @@ BreadcrumbListener, OnSelectionChangedListener, OnSelectionListener, OnRequestRe
}
/**
+ * Method that sets the listener for back requests
+ *
+ * @param onBackRequestListener The listener reference
+ */
+ public void setOnBackRequestListener(
+ OnBackRequestListener onBackRequestListener) {
+ this.mOnBackRequestListener = onBackRequestListener;
+ }
+
+
+ /**
* Method that sets if the view should use flinger gesture detection.
*
* @param useFlinger If the view should use flinger gesture detection