X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/7d331765096d4cbc2fccbae5ee0a9e33c7f6a62a..afaa2879d192be067cae523b51dad75d89a6c6cb:/src/com/owncloud/android/ui/activity/Uploader.java diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index 9a33620b..9e56a30b 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -2,6 +2,7 @@ * ownCloud Android client application * * @author Bartek Przybylski + * @author masensio * Copyright (C) 2012 Bartek Przybylski * Copyright (C) 2015 ownCloud Inc. * @@ -98,6 +99,7 @@ public class Uploader extends FileActivity private String mUploadPath; private OCFile mFile; private boolean mAccountSelected; + private boolean mAccountSelectionShowing; private ArrayList mRemoteCacheData; private int mNumCacheFile; @@ -112,6 +114,7 @@ public class Uploader extends FileActivity 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"; @@ -124,6 +127,7 @@ public class Uploader extends FileActivity if (savedInstanceState == null) { mParents = new Stack(); mAccountSelected = false; + mAccountSelectionShowing = false; mNumCacheFile = 0; // ArrayList for files with path in private storage @@ -132,6 +136,7 @@ public class Uploader extends FileActivity mParents = (Stack) 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); } @@ -156,9 +161,10 @@ public class Uploader extends FileActivity 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]); @@ -187,6 +193,7 @@ public class Uploader extends FileActivity //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()); @@ -255,12 +262,14 @@ public class Uploader extends FileActivity 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(); } @@ -530,7 +539,8 @@ public class Uploader extends FileActivity 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); @@ -658,7 +668,7 @@ public class Uploader extends FileActivity * @param index */ @Override - public void OnCopyTmpFileTaskListener(String result, int index) { + public void onTmpFileCopied(String result, int index) { if (mNumCacheFile -- == 0) { dismissWaitingCopyDialog(); } @@ -674,7 +684,7 @@ public class Uploader extends FileActivity 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); } }