* ownCloud Android client application
*
* @author Bartek Przybylski
+ * @author masensio
* Copyright (C) 2012 Bartek Przybylski
* Copyright (C) 2015 ownCloud Inc.
*
private String mUploadPath;
private OCFile mFile;
private boolean mAccountSelected;
+ private boolean mAccountSelectionShowing;
private ArrayList<String> mRemoteCacheData;
private int mNumCacheFile;
private final static String KEY_PARENTS = "PARENTS";
private final static String KEY_FILE = "FILE";
private final static String KEY_ACCOUNT_SELECTED = "ACCOUNT_SELECTED";
+ private final static String KEY_ACCOUNT_SELECTION_SHOWING = "ACCOUNT_SELECTION_SHOWING";
private final static String KEY_NUM_CACHE_FILE = "NUM_CACHE_FILE";
private final static String KEY_REMOTE_CACHE_DATA = "REMOTE_CACHE_DATA";
if (savedInstanceState == null) {
mParents = new Stack<String>();
mAccountSelected = false;
+ mAccountSelectionShowing = false;
mNumCacheFile = 0;
// ArrayList for files with path in private storage
mParents = (Stack<String>) savedInstanceState.getSerializable(KEY_PARENTS);
mFile = savedInstanceState.getParcelable(KEY_FILE);
mAccountSelected = savedInstanceState.getBoolean(KEY_ACCOUNT_SELECTED);
+ mAccountSelectionShowing = savedInstanceState.getBoolean(KEY_ACCOUNT_SELECTION_SHOWING);
mNumCacheFile = savedInstanceState.getInt(KEY_NUM_CACHE_FILE);
mRemoteCacheData = savedInstanceState.getStringArrayList(KEY_REMOTE_CACHE_DATA);
}
+
super.onCreate(savedInstanceState);
+ if (mAccountSelected) {
+ setAccount((Account) savedInstanceState.getParcelable(FileActivity.EXTRA_ACCOUNT));
+ }
+
+
ActionBar actionBar = getSupportActionBar();
actionBar.setIcon(DisplayUtils.getSeasonalIconId());
if (accounts.length == 0) {
Log_OC.i(TAG, "No ownCloud account is available");
showDialog(DIALOG_NO_ACCOUNT);
- } else if (accounts.length > 1 && !mAccountSelected) {
+ } else if (accounts.length > 1 && !mAccountSelected && !mAccountSelectionShowing) {
Log_OC.i(TAG, "More than one ownCloud is available");
showDialog(DIALOG_MULTIPLE_ACCOUNT);
+ mAccountSelectionShowing = true;
} else {
if (!savedAccount) {
setAccount(accounts[0]);
//outState.putParcelable(KEY_ACCOUNT, mAccount);
outState.putParcelable(KEY_FILE, mFile);
outState.putBoolean(KEY_ACCOUNT_SELECTED, mAccountSelected);
+ outState.putBoolean(KEY_ACCOUNT_SELECTION_SHOWING, mAccountSelectionShowing);
outState.putInt(KEY_NUM_CACHE_FILE, mNumCacheFile);
outState.putStringArrayList(KEY_REMOTE_CACHE_DATA, mRemoteCacheData);
+ outState.putParcelable(FileActivity.EXTRA_ACCOUNT, getAccount());
Log_OC.d(TAG, "onSaveInstanceState() end");
}
onAccountSet(mAccountWasRestored);
dialog.dismiss();
mAccountSelected = true;
+ mAccountSelectionShowing = false;
}
});
builder.setCancelable(true);
builder.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
+ mAccountSelectionShowing = false;
dialog.cancel();
finish();
}
actionBar.setHomeButtonEnabled(notRoot);
String full_path = generatePath(mParents);
-
+
Log_OC.d(TAG, "Populating view with content of : " + full_path);
mFile = getStorageManager().getFileByPath(full_path);
if (data == null) {
mRemoteCacheData.add(filePath);
CopyTmpFileAsyncTask copyTask = new CopyTmpFileAsyncTask(this);
- Object[] params = { uri, filePath, mRemoteCacheData.size()-1 };
+ Object[] params = { uri, filePath, mRemoteCacheData.size()-1,
+ getAccount().name, getContentResolver()};
mNumCacheFile++;
showWaitingCopyDialog();
copyTask.execute(params);
* @param index
*/
@Override
- public void OnCopyTmpFileTaskListener(String result, int index) {
+ public void onTmpFileCopied(String result, int index) {
if (mNumCacheFile -- == 0) {
dismissWaitingCopyDialog();
}
String message = String.format(getString(R.string.uploader_error_forbidden_content),
getString(R.string.app_name));
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
- Log_OC.d(TAG, message );
+ Log_OC.d(TAG, message);
}
}