From b8b2f8c23859503ef922f87eda096fc7387b5375 Mon Sep 17 00:00:00 2001 From: Bartek Przybylski Date: Sun, 20 May 2012 00:18:00 +0200 Subject: [PATCH] setting correct path on restore activity --- .../owncloud/ui/activity/FileDisplayActivity.java | 20 ++++++++++++++++++++ .../owncloud/ui/fragment/FileListFragment.java | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java index e7ee4cc1..17313e8b 100644 --- a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java +++ b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java @@ -76,9 +76,12 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements OnNavigationListener, OnClickListener { private ArrayAdapter 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(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), diff --git a/src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java b/src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java index 1dc6576e..5879298d 100644 --- a/src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java +++ b/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) { -- 2.11.0