Browse Source

setting correct path on restore activity

Bartek Przybylski 13 years ago
parent
commit
b8b2f8c238

+ 20 - 0
src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java

@@ -76,9 +76,12 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         OnNavigationListener, OnClickListener {
     private ArrayAdapter<String> mDirectories;
     private DataStorageManager mStorageManager;
+    private String[] mDirs = null;
 
     private SyncBroadcastReceiver syncBroadcastRevceiver;
 
+    private static final String KEY_DIR = "DIR";
+    
     private static final int DIALOG_SETUP_ACCOUNT = 0;
     private static final int DIALOG_CREATE_DIR = 1;
 
@@ -246,6 +249,16 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         if (!accountsAreSetup()) {
             showDialog(DIALOG_SETUP_ACCOUNT);
         }
+        mDirs = savedInstanceState.getStringArray(KEY_DIR);
+    }
+    
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        mDirs = new String[mDirectories.getCount()-1];
+        for (int j = mDirectories.getCount() - 2, i = 0; j >= 0; --j, ++i) {
+            mDirs[i] = mDirectories.getItem(j);
+        }
     }
 
     @Override
@@ -263,6 +276,13 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         mDirectories = new CustomArrayAdapter<String>(this,
                 R.layout.sherlock_spinner_dropdown_item);
         mDirectories.add("/");
+        if (mDirs != null) {
+            for (String s : mDirs)
+                mDirectories.insert(s, 0);
+            FileListFragment fileListFramgent = (FileListFragment) getSupportFragmentManager()
+                    .findFragmentById(R.id.fileList);
+            if (fileListFramgent != null) fileListFramgent.populateFileList();
+        }
 
         mStorageManager = new FileDataStorageManager(
                 AccountUtils.getCurrentOwnCloudAccount(this),

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

@@ -173,6 +173,12 @@ public class FileListFragment extends FragmentListView {
         setListAdapter(new FileListListAdapter(file, mStorageManager, getActivity()));
     }
 
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putParcelable("ACCOUNT", mAccount);
+    }
+    
     // TODO: Delete this testing stuff.
     /*
      * private void addContact(Account account, String name, String username) {