setting correct path on restore activity
authorBartek Przybylski <bart.p.pl@gmail.com>
Sat, 19 May 2012 22:18:00 +0000 (00:18 +0200)
committerBartek Przybylski <bart.p.pl@gmail.com>
Sat, 19 May 2012 22:18:00 +0000 (00:18 +0200)
src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java
src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java

index e7ee4cc..17313e8 100644 (file)
@@ -76,9 +76,12 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         OnNavigationListener, OnClickListener {\r
     private ArrayAdapter<String> mDirectories;\r
     private DataStorageManager mStorageManager;\r
         OnNavigationListener, OnClickListener {\r
     private ArrayAdapter<String> mDirectories;\r
     private DataStorageManager mStorageManager;\r
+    private String[] mDirs = null;\r
 \r
     private SyncBroadcastReceiver syncBroadcastRevceiver;\r
 \r
 \r
     private SyncBroadcastReceiver syncBroadcastRevceiver;\r
 \r
+    private static final String KEY_DIR = "DIR";\r
+    \r
     private static final int DIALOG_SETUP_ACCOUNT = 0;\r
     private static final int DIALOG_CREATE_DIR = 1;\r
 \r
     private static final int DIALOG_SETUP_ACCOUNT = 0;\r
     private static final int DIALOG_CREATE_DIR = 1;\r
 \r
@@ -246,6 +249,16 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         if (!accountsAreSetup()) {\r
             showDialog(DIALOG_SETUP_ACCOUNT);\r
         }\r
         if (!accountsAreSetup()) {\r
             showDialog(DIALOG_SETUP_ACCOUNT);\r
         }\r
+        mDirs = savedInstanceState.getStringArray(KEY_DIR);\r
+    }\r
+    \r
+    @Override\r
+    protected void onSaveInstanceState(Bundle outState) {\r
+        super.onSaveInstanceState(outState);\r
+        mDirs = new String[mDirectories.getCount()-1];\r
+        for (int j = mDirectories.getCount() - 2, i = 0; j >= 0; --j, ++i) {\r
+            mDirs[i] = mDirectories.getItem(j);\r
+        }\r
     }\r
 \r
     @Override\r
     }\r
 \r
     @Override\r
@@ -263,6 +276,13 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         mDirectories = new CustomArrayAdapter<String>(this,\r
                 R.layout.sherlock_spinner_dropdown_item);\r
         mDirectories.add("/");\r
         mDirectories = new CustomArrayAdapter<String>(this,\r
                 R.layout.sherlock_spinner_dropdown_item);\r
         mDirectories.add("/");\r
+        if (mDirs != null) {\r
+            for (String s : mDirs)\r
+                mDirectories.insert(s, 0);\r
+            FileListFragment fileListFramgent = (FileListFragment) getSupportFragmentManager()\r
+                    .findFragmentById(R.id.fileList);\r
+            if (fileListFramgent != null) fileListFramgent.populateFileList();\r
+        }\r
 \r
         mStorageManager = new FileDataStorageManager(\r
                 AccountUtils.getCurrentOwnCloudAccount(this),\r
 \r
         mStorageManager = new FileDataStorageManager(\r
                 AccountUtils.getCurrentOwnCloudAccount(this),\r
index 1dc6576..5879298 100644 (file)
@@ -173,6 +173,12 @@ public class FileListFragment extends FragmentListView {
         setListAdapter(new FileListListAdapter(file, mStorageManager, getActivity()));\r
     }\r
 \r
         setListAdapter(new FileListListAdapter(file, mStorageManager, getActivity()));\r
     }\r
 \r
+    @Override\r
+    public void onSaveInstanceState(Bundle outState) {\r
+        super.onSaveInstanceState(outState);\r
+        outState.putParcelable("ACCOUNT", mAccount);\r
+    }\r
+    \r
     // TODO: Delete this testing stuff.\r
     /*\r
      * private void addContact(Account account, String name, String username) {\r
     // TODO: Delete this testing stuff.\r
     /*\r
      * private void addContact(Account account, String name, String username) {\r