X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/7d5c573766d7b8a5b8113479f29520628e0c7cb0..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 4033ed5f..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,11 +136,18 @@ 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); } + super.onCreate(savedInstanceState); + if (mAccountSelected) { + setAccount((Account) savedInstanceState.getParcelable(FileActivity.EXTRA_ACCOUNT)); + } + + ActionBar actionBar = getSupportActionBar(); actionBar.setIcon(DisplayUtils.getSeasonalIconId()); @@ -150,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]); @@ -181,8 +193,10 @@ 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()); Log_OC.d(TAG, "onSaveInstanceState() end"); } @@ -248,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(); } @@ -389,7 +405,7 @@ public class Uploader extends FileActivity actionBar.setHomeButtonEnabled(notRoot); String full_path = generatePath(mParents); - + Log_OC.d(TAG, "Populating view with content of : " + full_path); mFile = getStorageManager().getFileByPath(full_path); @@ -523,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); @@ -651,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(); } @@ -667,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); } }