in case of open drawer close it onBackPressed
authorAndyScherzinger <info@andy-scherzinger.de>
Sun, 26 Jul 2015 00:25:25 +0000 (02:25 +0200)
committerAndyScherzinger <info@andy-scherzinger.de>
Sun, 26 Jul 2015 00:25:25 +0000 (02:25 +0200)
src/com/owncloud/android/ui/activity/FileActivity.java
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

index 516daa1..0869ba6 100644 (file)
@@ -289,7 +289,7 @@ public class FileActivity extends AppCompatActivity
         // Sync the toggle state after onRestoreInstanceState has occurred.
         if (mDrawerToggle != null) {
             mDrawerToggle.syncState();
-            if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
+            if (isDrawerOpen()) {
                 getSupportActionBar().setTitle(R.string.app_name);
                 mDrawerToggle.setDrawerIndicatorEnabled(true);
             }
@@ -304,6 +304,23 @@ public class FileActivity extends AppCompatActivity
         }
     }
 
+    @Override
+    public void onBackPressed() {
+        if (isDrawerOpen()) {
+            closeNavDrawer();
+            return;
+        }
+        super.onBackPressed();
+    }
+
+    public boolean isDrawerOpen() {
+        return mDrawerLayout.isDrawerOpen(GravityCompat.START);
+    }
+
+    public void closeNavDrawer() {
+        mDrawerLayout.closeDrawer(GravityCompat.START);
+    }
+
     protected void initDrawer(){
         // constant settings for action bar when navigation drawer is inited
         getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
index f7d28bd..be430aa 100644 (file)
@@ -733,22 +733,25 @@ public class FileDisplayActivity extends HookActivity
 
     @Override
     public void onBackPressed() {
-        OCFileListFragment listOfFiles = getListOfFilesFragment(); 
-        if (mDualPane || getSecondFragment() == null) {
-            OCFile currentDir = getCurrentDir();
-            if (currentDir == null || currentDir.getParentId() == FileDataStorageManager.ROOT_PARENT_ID) {
-                finish();
-                return;
+        if (!isDrawerOpen()){
+            OCFileListFragment listOfFiles = getListOfFilesFragment();
+            if (mDualPane || getSecondFragment() == null) {
+                OCFile currentDir = getCurrentDir();
+                if (currentDir == null || currentDir.getParentId() == FileDataStorageManager.ROOT_PARENT_ID) {
+                    finish();
+                    return;
+                }
+                if (listOfFiles != null) {  // should never be null, indeed
+                    listOfFiles.onBrowseUp();
+                }
             }
             if (listOfFiles != null) {  // should never be null, indeed
-                listOfFiles.onBrowseUp();
+                setFile(listOfFiles.getCurrentFile());
             }
+            cleanSecondFragment();
+        } else {
+            super.onBackPressed();
         }
-        if (listOfFiles != null) {  // should never be null, indeed
-            setFile(listOfFiles.getCurrentFile());
-        }
-        cleanSecondFragment();
-
     }
 
     @Override