X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/576e2923ccbb2175b7177b26aca90b4b4c0253d0..99c46398f1020cf35895a690e1ca8ad1de75f3c7:/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 e7ee4cc1..a38f39bf 100644 --- a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java +++ b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java @@ -62,7 +62,6 @@ import eu.alefzero.owncloud.datamodel.OCFile; import eu.alefzero.owncloud.files.services.FileUploader; import eu.alefzero.owncloud.syncadapter.FileSyncService; import eu.alefzero.owncloud.ui.fragment.FileListFragment; -import eu.alefzero.owncloud.utils.OwnCloudVersion; import eu.alefzero.webdav.WebdavClient; /** @@ -76,13 +75,14 @@ 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; - - private static final int REQUEST_ACCOUNT_SETUP = 0; private static final int ACTION_SELECT_FILE = 1; public void pushPath(String path) { @@ -172,8 +172,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setProgressBarIndeterminateVisibility(false); - // if (getSupportFragmentManager().findFragmentById(R.id.fileList) == - // null) + setContentView(R.layout.files); } @@ -182,41 +181,36 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements public boolean onOptionsItemSelected(MenuItem item) { boolean retval = true; switch (item.getItemId()) { - case R.id.settingsItem: { - Intent i = new Intent(this, Preferences.class); - startActivity(i); - break; - } - case R.id.createDirectoryItem: { - showDialog(DIALOG_CREATE_DIR); - break; - } - case R.id.startSync: { - Bundle bundle = new Bundle(); - bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); - ContentResolver.requestSync( - AccountUtils.getCurrentOwnCloudAccount(this), - "org.owncloud", bundle); - break; - } - case R.id.action_upload: { - Intent action = new Intent(Intent.ACTION_GET_CONTENT); - action = action.setType("*/*") - .addCategory(Intent.CATEGORY_OPENABLE); - startActivityForResult( - Intent.createChooser(action, "Upload file from..."), - ACTION_SELECT_FILE); - break; - } - - case android.R.id.home: { - Intent i = new Intent(this, AccountSelectActivity.class); - startActivity(i); - finish(); - break; - } - default: - retval = false; + case R.id.createDirectoryItem: { + showDialog(DIALOG_CREATE_DIR); + break; + } + case R.id.startSync: { + Bundle bundle = new Bundle(); + bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); + ContentResolver.requestSync( + AccountUtils.getCurrentOwnCloudAccount(this), + "org.owncloud", bundle); + break; + } + case R.id.action_upload: { + Intent action = new Intent(Intent.ACTION_GET_CONTENT); + action = action.setType("*/*") + .addCategory(Intent.CATEGORY_OPENABLE); + startActivityForResult( + Intent.createChooser(action, "Upload file from..."), + ACTION_SELECT_FILE); + break; + } + + case android.R.id.home: { + Intent i = new Intent(this, AccountSelectActivity.class); + startActivity(i); + finish(); + break; + } + default: + retval = false; } return retval; } @@ -246,6 +240,23 @@ 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); + if(mDirectories != null){ + mDirs = new String[mDirectories.getCount()-1]; + for (int j = mDirectories.getCount() - 2, i = 0; j >= 0; --j, ++i) { + mDirs[i] = mDirectories.getItem(j); + } + } } @Override @@ -260,9 +271,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.listDirectory(); + } mStorageManager = new FileDataStorageManager( AccountUtils.getCurrentOwnCloudAccount(this), @@ -275,7 +292,6 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements } public void onActivityResult(int requestCode, int resultCode, Intent data) { - Log.e("ASD", requestCode + " " + resultCode); if (resultCode == RESULT_OK) { if (requestCode == ACTION_SELECT_FILE) { Uri selectedImageUri = data.getData(); @@ -299,17 +315,16 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements AccountUtils.getCurrentOwnCloudAccount(this)); String remotepath = new String(); for (int j = mDirectories.getCount() - 2; j >= 0; --j) { - remotepath += "/" + URLDecoder.decode(mDirectories.getItem(j)); + remotepath += "/" + URLEncoder.encode(mDirectories.getItem(j)); } if (!remotepath.endsWith("/")) remotepath += "/"; - remotepath += new File(filepath).getName(); + remotepath += URLEncoder.encode(new File(filepath).getName()); Log.e("ASD", remotepath + ""); i.putExtra(FileUploader.KEY_LOCAL_FILE, filepath); i.putExtra(FileUploader.KEY_REMOTE_FILE, remotepath); - i.putExtra(FileUploader.KEY_UPLOAD_TYPE, - FileUploader.UPLOAD_SINGLE_FILE); + i.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_SINGLE_FILE); startService(i); } } @@ -445,7 +460,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements FileListFragment fileListFramgent = (FileListFragment) getSupportFragmentManager() .findFragmentById(R.id.fileList); if (fileListFramgent != null) - fileListFramgent.populateFileList(); + fileListFramgent.listDirectory(); } }