X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/435b31ba4f3597cc7a43270cd4a54fb0180956c1..cfe4273de5fd5d54f3933a9cb8b53cdd35e1b11d:/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java diff --git a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java index 4ca240dd..ef31ce8b 100644 --- a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java +++ b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java @@ -19,6 +19,7 @@ package eu.alefzero.owncloud.ui.activity; import java.io.File; +import java.net.URLDecoder; import java.net.URLEncoder; import android.accounts.Account; @@ -75,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; @@ -245,6 +249,21 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements if (!accountsAreSetup()) { showDialog(DIALOG_SETUP_ACCOUNT); } + mDirs = savedInstanceState.getStringArray(KEY_DIR); + mDirectories = new CustomArrayAdapter(this, R.layout.sherlock_spinner_dropdown_item); + mDirectories.add("/"); + if (mDirs != null) + for (String s : mDirs) + mDirectories.insert(s, 0); + } + + @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 @@ -259,9 +278,15 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements syncBroadcastRevceiver = new SyncBroadcastReceiver(); registerReceiver(syncBroadcastRevceiver, f); - mDirectories = new CustomArrayAdapter(this, - R.layout.sherlock_spinner_dropdown_item); + 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), @@ -298,7 +323,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements AccountUtils.getCurrentOwnCloudAccount(this)); String remotepath = new String(); for (int j = mDirectories.getCount() - 2; j >= 0; --j) { - remotepath += "/" + mDirectories.getItem(j); + remotepath += "/" + URLDecoder.decode(mDirectories.getItem(j)); } if (!remotepath.endsWith("/")) remotepath += "/";