Fixed navigation behaviour: HomeAsUp takes you up a dir
authorLennart Rosam <lennart@familie-rosam.de>
Fri, 25 May 2012 05:01:12 +0000 (07:01 +0200)
committerLennart Rosam <lennart@familie-rosam.de>
Fri, 25 May 2012 05:01:12 +0000 (07:01 +0200)
res/menu/menu.xml
res/values/strings.xml
src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java
src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java

index c148bd3..590eabd 100644 (file)
@@ -1,9 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <menu
   xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:id="@+id/startSync" android:title="Sync account" android:showAsAction="ifRoom" android:icon="@drawable/ic_action_refresh"></item>
-    <item android:id="@+id/createDirectoryItem" android:title="Create Directory" android:icon="@drawable/ic_action_create_dir" android:showAsAction="ifRoom"></item>
+    <item android:id="@+id/startSync" android:title="@string/actionbar_sync" android:showAsAction="ifRoom" android:icon="@drawable/ic_action_refresh"></item>
+    <item android:id="@+id/createDirectoryItem" android:title="@string/actionbar_mkdir" android:icon="@drawable/ic_action_create_dir" android:showAsAction="ifRoom"></item>
     
-    <item android:id="@+id/search" android:icon="@drawable/ic_action_search" android:showAsAction="ifRoom"></item>
-    <item android:id="@+id/action_upload" android:icon="@drawable/ic_action_upload" android:showAsAction="ifRoom"></item>
+    <item android:id="@+id/search" android:title="@string/actionbar_search" android:icon="@drawable/ic_action_search" android:showAsAction="ifRoom"></item>
+    <item android:id="@+id/action_upload" android:title="@string/actionbar_upload" android:icon="@drawable/ic_action_upload" android:showAsAction="ifRoom"></item>
+    <item android:id="@+id/action_accounts" android:title="@string/actionbar_settings" android:icon="@android:drawable/ic_menu_preferences" android:showAsAction="ifRoom"></item>
 </menu>
index c33e085..4eb8c62 100644 (file)
     <string name="main_tit_accsetup">Account Setup</string>
     <string name="main_wrn_accsetup">There are no ownCloud accounts on your device. In order to use this App, you need to create one.</string>
     
+    <string name="actionbar_sync">Sync account</string>
+    <string name="actionbar_upload">Upload file</string>
+    <string name="actionbar_mkdir">Create directory</string>
+    <string name="actionbar_search">Search</string>
+    <string name="actionbar_settings">Settings</string>
+    
     <string name="prefs_category_general">General</string>
     <string name="prefs_category_trackmydevice">Device tracking</string>
     <string name="prefs_add_session">Add new session</string>
index 47dae5f..93cf649 100644 (file)
 package eu.alefzero.owncloud.ui.activity;\r
 \r
 import java.io.File;\r
-import java.net.URLDecoder;\r
 import java.net.URLEncoder;\r
 import java.util.ArrayList;\r
-import java.util.Arrays;\r
 \r
 import android.accounts.Account;\r
 import android.accounts.AccountManager;\r
@@ -142,11 +140,14 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
                         ACTION_SELECT_FILE);\r
                 break;\r
             }\r
-    \r
+            case R.id.action_accounts: {\r
+                Intent accountIntent = new Intent(this, AccountSelectActivity.class);\r
+                startActivity(accountIntent);\r
+            }\r
             case android.R.id.home: {\r
-                Intent i = new Intent(this, AccountSelectActivity.class);\r
-                startActivity(i);\r
-                finish();\r
+                if(mCurrentDir != null && mCurrentDir.getParentId() != 0){\r
+                    onBackPressed(); \r
+                }\r
                 break;\r
             }\r
             default:\r
@@ -215,6 +216,11 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         popDirname();\r
         mFileList.onNavigateUp();\r
         mCurrentDir = mFileList.getCurrentFile();\r
+        \r
+        if(mCurrentDir.getParentId() == 0){\r
+            ActionBar actionBar = getSupportActionBar(); \r
+            actionBar.setDisplayHomeAsUpEnabled(false);\r
+        } \r
     }\r
 \r
     @Override\r
@@ -312,7 +318,12 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         action_bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);\r
         action_bar.setDisplayShowTitleEnabled(false);\r
         action_bar.setListNavigationCallbacks(mDirectories, this);\r
-        action_bar.setDisplayHomeAsUpEnabled(true);\r
+        if(mCurrentDir != null && mCurrentDir.getParentId() != 0){\r
+            action_bar.setDisplayHomeAsUpEnabled(true);\r
+        } else {\r
+            action_bar.setDisplayHomeAsUpEnabled(false);\r
+        }\r
+        \r
         \r
         // List dir here\r
         mFileList.listDirectory(mCurrentDir);\r
index 474416e..d9ef3da 100644 (file)
@@ -19,6 +19,8 @@ package eu.alefzero.owncloud.ui.fragment;
 \r
 import java.util.Vector;\r
 \r
+import com.actionbarsherlock.app.ActionBar;\r
+\r
 import android.accounts.Account;\r
 import android.content.Intent;\r
 import android.os.Bundle;\r
@@ -92,6 +94,8 @@ public class FileListFragment extends FragmentListView {
         if (file.getMimetype().equals("DIR")) {\r
             mFile = file;\r
             ((FileDisplayActivity) getActivity()).pushDirname(file);\r
+            ActionBar actionBar = ((FileDisplayActivity) getActivity()).getSupportActionBar();\r
+            actionBar.setDisplayHomeAsUpEnabled(true);\r
             listDirectory(file);\r
             resetFileFragment();\r
             return;\r