From: Bartek Przybylski Date: Sat, 19 May 2012 22:18:00 +0000 (+0200) Subject: setting correct path on restore activity X-Git-Tag: oc-android-1.4.3~406 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/b8b2f8c23859503ef922f87eda096fc7387b5375?ds=inline;hp=--cc setting correct path on restore activity --- b8b2f8c23859503ef922f87eda096fc7387b5375 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) {