X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/7d331765096d4cbc2fccbae5ee0a9e33c7f6a62a..00482b6dcb1e98da39df54374f7098b51d66bee5:/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..f0e06953 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. * @@ -55,6 +56,8 @@ import android.provider.MediaStore.Video; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; +import android.support.v7.app.ActionBar; +import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; @@ -64,16 +67,14 @@ import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.Toast; -import com.actionbarsherlock.app.ActionBar; -import com.actionbarsherlock.view.MenuItem; import com.owncloud.android.MainApp; import com.owncloud.android.R; import com.owncloud.android.authentication.AccountAuthenticator; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.services.FileUploader; +import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; -import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.operations.CreateFolderOperation; import com.owncloud.android.ui.dialog.CreateFolderDialogFragment; import com.owncloud.android.ui.dialog.LoadingDialog; @@ -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()); @@ -213,7 +220,8 @@ public class Uploader extends FileActivity builder.setPositiveButton(R.string.uploader_wrn_no_account_setup_btn_text, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.ECLAIR_MR1) { + if (android.os.Build.VERSION.SDK_INT > + android.os.Build.VERSION_CODES.ECLAIR_MR1) { // using string value since in API7 this // constatn is not defined // in API7 < this constatant is defined in @@ -255,12 +263,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(); } @@ -316,7 +326,8 @@ public class Uploader extends FileActivity public void onItemClick(AdapterView parent, View view, int position, long id) { // click on folder in the list Log_OC.d(TAG, "on item click"); - Vector tmpfiles = getStorageManager().getFolderContent(mFile); + // TODO Enable when "On Device" is recovered ? + Vector tmpfiles = getStorageManager().getFolderContent(mFile /*, false*/); if (tmpfiles.size() <= 0) return; // filter on dirtype Vector files = new Vector(); @@ -401,7 +412,8 @@ public class Uploader extends FileActivity mFile = getStorageManager().getFileByPath(full_path); if (mFile != null) { - Vector files = getStorageManager().getFolderContent(mFile); + // TODO Enable when "On Device" is recovered ? + Vector files = getStorageManager().getFolderContent(mFile/*, false*/); List> data = new LinkedList>(); for (OCFile f : files) { HashMap h = new HashMap(); @@ -414,7 +426,7 @@ public class Uploader extends FileActivity data, R.layout.uploader_list_item_layout, new String[] {"dirname"}, - new int[] {R.id.textView1}); + new int[] {R.id.filename}); mListView.setAdapter(sa); Button btnChooseFolder = (Button) findViewById(R.id.uploader_choose_folder); @@ -530,7 +542,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); @@ -625,6 +638,7 @@ public class Uploader extends FileActivity mParents.add(""); } else{ String[] dir_names = last_path.split("/"); + mParents.clear(); for (String dir : dir_names) mParents.add(dir); } @@ -658,7 +672,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 +688,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); } }