Fixed navigation behavior
authorLennart Rosam <lennart@familie-rosam.de>
Sat, 14 Apr 2012 13:07:07 +0000 (15:07 +0200)
committerLennart Rosam <lennart@familie-rosam.de>
Sat, 14 Apr 2012 13:07:07 +0000 (15:07 +0200)
src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java
src/eu/alefzero/owncloud/ui/activity/Preferences.java
src/eu/alefzero/owncloud/ui/adapter/LandingScreenAdapter.java
src/eu/alefzero/owncloud/ui/fragment/FileList.java

index f0bc4f2..5656d3f 100644 (file)
@@ -137,9 +137,26 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
                        showDialog(0);\r
                        break;\r
                }\r
+               case android.R.id.home: {\r
+                       navigateUp();\r
+                       break;\r
+               }\r
+                       \r
                }\r
                return true;\r
        }\r
+       \r
+       public void navigateUp(){\r
+               popPath();\r
+               if(mDirectories.getCount() == 0) {\r
+                       Intent intent = new Intent(this, LandingActivity.class);\r
+                       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);\r
+                       startActivity(intent);\r
+                       return;\r
+               }\r
+               ((FileList) getSupportFragmentManager().findFragmentById(R.id.fileList))\r
+                               .onNavigateUp();\r
+       }\r
 \r
        @Override\r
        protected Dialog onCreateDialog(int id) {\r
@@ -191,22 +208,11 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
        public boolean onNavigationItemSelected(int itemPosition, long itemId) {\r
                int i = itemPosition;\r
                while (i-- != 0) {\r
-                       onBackPressed();\r
+                       navigateUp();\r
                }\r
                return true;\r
        }\r
 \r
-       @Override\r
-       public void onBackPressed() {\r
-               popPath();\r
-               if (mDirectories.getCount() == 0) {\r
-                       super.onBackPressed();\r
-                       return;\r
-               }\r
-               ((FileList) getSupportFragmentManager().findFragmentById(R.id.fileList))\r
-                               .onBackPressed();\r
-       }\r
-\r
        private class DirectoryCreator implements Runnable {\r
                private String mTargetPath;\r
                private Account mAccount;\r
index aec2f94..70f3362 100644 (file)
@@ -36,6 +36,7 @@ import android.view.ContextMenu.ContextMenuInfo;
 import android.view.View;\r
 import android.widget.AdapterView.AdapterContextMenuInfo;\r
 \r
+import com.actionbarsherlock.app.ActionBar;\r
 import com.actionbarsherlock.app.SherlockPreferenceActivity;\r
 import com.actionbarsherlock.view.Menu;\r
 import com.actionbarsherlock.view.MenuInflater;\r
@@ -70,6 +71,8 @@ public class Preferences extends SherlockPreferenceActivity implements OnPrefere
     addPreferencesFromResource(R.xml.preferences);\r
     registerForContextMenu(getListView());\r
     populateAccountList();\r
+    ActionBar actionBar = getSherlock().getActionBar();\r
+    actionBar.setDisplayHomeAsUpEnabled(true);\r
     //populateSessionList();\r
   }\r
   \r
@@ -151,6 +154,11 @@ public class Preferences extends SherlockPreferenceActivity implements OnPrefere
         mSessions.remove(ocs);\r
         getPreferenceScreen().removePreference(getPreferenceScreen().getPreference(mSelectedMenuItem+1));\r
         break;\r
+      case android.R.id.home:\r
+         intent = new Intent(getBaseContext(), LandingActivity.class);\r
+         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);\r
+         startActivity(intent);\r
+         break;\r
       default:\r
         Log.w(TAG, "Unknown menu item triggered");\r
         return false;\r
index 914ed43..3483983 100644 (file)
@@ -75,6 +75,7 @@ public class LandingScreenAdapter extends BaseAdapter {
                         */\r
                        intent.setClass(mContext, FileDisplayActivity.class);   \r
                        intent.putExtra("ACCOUNT", AuthUtils.getCurrentOwnCloudAccount(mContext));\r
+                       intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\r
                        break;\r
                case 5:\r
                        intent.setClass(mContext, Preferences.class);\r
index 341d1d4..785b6ba 100644 (file)
  */\r
 package eu.alefzero.owncloud.ui.fragment;\r
 \r
-import java.util.ArrayList;\r
 import java.util.Stack;\r
 import java.util.Vector;\r
 \r
 import android.accounts.Account;\r
-import android.content.ContentProviderOperation;\r
 import android.content.Intent;\r
 import android.os.Bundle;\r
-import android.provider.ContactsContract;\r
-import android.provider.ContactsContract.RawContacts;\r
-import android.util.Log;\r
 import android.view.View;\r
 import android.widget.AdapterView;\r
 import eu.alefzero.owncloud.R;\r
@@ -58,6 +53,7 @@ public class FileList extends FragmentListView {
 \r
     mAccount = AuthUtils.getCurrentOwnCloudAccount(getActivity());\r
     populateFileList();\r
+    // TODO: Remove this testing stuff\r
     //addContact(mAccount, "Bartek Przybylski", "czlowiek");\r
   }\r
   \r
@@ -90,11 +86,17 @@ public class FileList extends FragmentListView {
     }\r
   }\r
 \r
-  public void onBackPressed() {\r
+  /**\r
+   * Call this, when the user presses the up button\r
+   */\r
+  public void onNavigateUp() {\r
     mDirNames.pop();\r
     populateFileList();\r
   }\r
 \r
+  /**\r
+   * Lists the directory\r
+   */\r
   private void populateFileList() {\r
     String s = "/";\r
     for (String a : mDirNames)\r
@@ -105,7 +107,8 @@ public class FileList extends FragmentListView {
     setListAdapter(new FileListListAdapter(file, getActivity()));\r
   }\r
   \r
-  private  void addContact(Account account, String name, String username) {\r
+  //TODO: Delete this testing stuff.\r
+  /*private  void addContact(Account account, String name, String username) {\r
     Log.i("ASD", "Adding contact: " + name);\r
     ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();\r
     \r
@@ -138,6 +141,6 @@ public class FileList extends FragmentListView {
      Log.e("ASD", "Something went wrong during creation! " + e);\r
      e.printStackTrace();\r
     }\r
-   }\r
+   }*/\r
   \r
 }\r