瀏覽代碼

Fixed navigation behaviour: HomeAsUp takes you up a dir

Lennart Rosam 13 年之前
父節點
當前提交
b735fc9458

+ 5 - 4
res/menu/menu.xml

@@ -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>

+ 6 - 0
res/values/strings.xml

@@ -15,6 +15,12 @@
     <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>

+ 18 - 7
src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java

@@ -19,10 +19,8 @@
 package eu.alefzero.owncloud.ui.activity;
 
 import java.io.File;
-import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.util.ArrayList;
-import java.util.Arrays;
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
@@ -142,11 +140,14 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
                         ACTION_SELECT_FILE);
                 break;
             }
-    
+            case R.id.action_accounts: {
+                Intent accountIntent = new Intent(this, AccountSelectActivity.class);
+                startActivity(accountIntent);
+            }
             case android.R.id.home: {
-                Intent i = new Intent(this, AccountSelectActivity.class);
-                startActivity(i);
-                finish();
+                if(mCurrentDir != null && mCurrentDir.getParentId() != 0){
+                    onBackPressed(); 
+                }
                 break;
             }
             default:
@@ -215,6 +216,11 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         popDirname();
         mFileList.onNavigateUp();
         mCurrentDir = mFileList.getCurrentFile();
+        
+        if(mCurrentDir.getParentId() == 0){
+            ActionBar actionBar = getSupportActionBar(); 
+            actionBar.setDisplayHomeAsUpEnabled(false);
+        } 
     }
 
     @Override
@@ -312,7 +318,12 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         action_bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
         action_bar.setDisplayShowTitleEnabled(false);
         action_bar.setListNavigationCallbacks(mDirectories, this);
-        action_bar.setDisplayHomeAsUpEnabled(true);
+        if(mCurrentDir != null && mCurrentDir.getParentId() != 0){
+            action_bar.setDisplayHomeAsUpEnabled(true);
+        } else {
+            action_bar.setDisplayHomeAsUpEnabled(false);
+        }
+        
         
         // List dir here
         mFileList.listDirectory(mCurrentDir);

+ 4 - 0
src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java

@@ -19,6 +19,8 @@ package eu.alefzero.owncloud.ui.fragment;
 
 import java.util.Vector;
 
+import com.actionbarsherlock.app.ActionBar;
+
 import android.accounts.Account;
 import android.content.Intent;
 import android.os.Bundle;
@@ -92,6 +94,8 @@ public class FileListFragment extends FragmentListView {
         if (file.getMimetype().equals("DIR")) {
             mFile = file;
             ((FileDisplayActivity) getActivity()).pushDirname(file);
+            ActionBar actionBar = ((FileDisplayActivity) getActivity()).getSupportActionBar();
+            actionBar.setDisplayHomeAsUpEnabled(true);
             listDirectory(file);
             resetFileFragment();
             return;