X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/002e1bf9e3872734f050638c7291540879cd42e8..c2abbaaedb69dba35866a48b745b68f3519cbca1:/src/com/owncloud/android/Uploader.java diff --git a/src/com/owncloud/android/Uploader.java b/src/com/owncloud/android/Uploader.java index 2a831792..ddd3f4ca 100644 --- a/src/com/owncloud/android/Uploader.java +++ b/src/com/owncloud/android/Uploader.java @@ -3,9 +3,8 @@ * Copyright (C) 2012-2013 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,6 +15,7 @@ * along with this program. If not, see . * */ + package com.owncloud.android; import java.io.File; @@ -26,6 +26,14 @@ import java.util.List; import java.util.Stack; import java.util.Vector; +import com.owncloud.android.R; +import com.owncloud.android.authentication.AccountAuthenticator; +import com.owncloud.android.datamodel.DataStorageManager; +import com.owncloud.android.datamodel.FileDataStorageManager; +import com.owncloud.android.datamodel.OCFile; +import com.owncloud.android.files.services.FileUploader; +import com.owncloud.android.ui.CustomButton; + import android.accounts.Account; import android.accounts.AccountManager; import android.app.AlertDialog; @@ -45,24 +53,15 @@ import android.os.Parcelable; import android.provider.MediaStore.Audio; import android.provider.MediaStore.Images; import android.provider.MediaStore.Video; -import android.util.Log; import android.view.View; import android.view.Window; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; -import android.widget.Button; import android.widget.EditText; import android.widget.SimpleAdapter; import android.widget.Toast; -import com.owncloud.android.authenticator.AccountAuthenticator; -import com.owncloud.android.datamodel.DataStorageManager; -import com.owncloud.android.datamodel.FileDataStorageManager; -import com.owncloud.android.datamodel.OCFile; -import com.owncloud.android.files.services.FileUploader; -import com.owncloud.android.network.OwnCloudClientUtils; -import eu.alefzero.webdav.WebdavClient; /** * This can be used to upload things to an ownCloud instance. @@ -86,7 +85,6 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro private final static int DIALOG_WAITING = 1; private final static int DIALOG_NO_STREAM = 2; private final static int DIALOG_MULTIPLE_ACCOUNT = 3; - //private final static int DIALOG_GET_DIRNAME = 4; private final static int REQUEST_CODE_SETUP_ACCOUNT = 0; @@ -96,16 +94,14 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro getWindow().requestFeature(Window.FEATURE_NO_TITLE); mParents = new Stack(); mParents.add(""); - /*if (getIntent().hasExtra(Intent.EXTRA_STREAM)) { - prepareStreamsToUpload();*/ if (prepareStreamsToUpload()) { mAccountManager = (AccountManager) getSystemService(Context.ACCOUNT_SERVICE); - Account[] accounts = mAccountManager.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE); + Account[] accounts = mAccountManager.getAccountsByType(MainApp.getAccountType()); if (accounts.length == 0) { - Log.i(TAG, "No ownCloud account is available"); + Log_OC.i(TAG, "No ownCloud account is available"); showDialog(DIALOG_NO_ACCOUNT); } else if (accounts.length > 1) { - Log.i(TAG, "More then one ownCloud is available"); + Log_OC.i(TAG, "More then one ownCloud is available"); showDialog(DIALOG_MULTIPLE_ACCOUNT); } else { mAccount = accounts[0]; @@ -141,8 +137,8 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro // in API7 < this constatant is defined in // Settings.ADD_ACCOUNT_SETTINGS // and Settings.EXTRA_AUTHORITIES - Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS"); - intent.putExtra("authorities", new String[] { AccountAuthenticator.AUTH_TOKEN_TYPE }); + Intent intent = new Intent(android.provider.Settings.ACTION_ADD_ACCOUNT); + intent.putExtra("authorities", new String[] { MainApp.getAuthTokenType() }); startActivityForResult(intent, REQUEST_CODE_SETUP_ACCOUNT); } else { // since in API7 there is no direct call for @@ -163,15 +159,15 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro }); return builder.create(); case DIALOG_MULTIPLE_ACCOUNT: - CharSequence ac[] = new CharSequence[mAccountManager.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE).length]; + CharSequence ac[] = new CharSequence[mAccountManager.getAccountsByType(MainApp.getAccountType()).length]; for (int i = 0; i < ac.length; ++i) { - ac[i] = mAccountManager.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE)[i].name; + ac[i] = mAccountManager.getAccountsByType(MainApp.getAccountType())[i].name; } builder.setTitle(R.string.common_choose_account); builder.setItems(ac, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - mAccount = mAccountManager.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE)[which]; + mAccount = mAccountManager.getAccountsByType(MainApp.getAccountType())[which]; mStorageManager = new FileDataStorageManager(mAccount, getContentResolver()); populateDirectoryList(); } @@ -234,7 +230,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro @Override public void onItemClick(AdapterView parent, View view, int position, long id) { // click on folder in the list - Log.d(TAG, "on item click"); + Log_OC.d(TAG, "on item click"); Vector tmpfiles = mStorageManager.getDirectoryContent(mFile); if (tmpfiles.size() <= 0) return; // filter on dirtype @@ -257,7 +253,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro mUploadPath = ""; // first element in mParents is root dir, represented by ""; init mUploadPath with "/" results in a "//" prefix for (String p : mParents) mUploadPath += p + OCFile.PATH_SEPARATOR; - Log.d(TAG, "Uploading file to dir " + mUploadPath); + Log_OC.d(TAG, "Uploading file to dir " + mUploadPath); uploadFiles(); @@ -270,13 +266,13 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - Log.i(TAG, "result received. req: " + requestCode + " res: " + resultCode); + Log_OC.i(TAG, "result received. req: " + requestCode + " res: " + resultCode); if (requestCode == REQUEST_CODE_SETUP_ACCOUNT) { dismissDialog(DIALOG_NO_ACCOUNT); if (resultCode == RESULT_CANCELED) { finish(); } - Account[] accounts = mAccountManager.getAccountsByType(AccountAuthenticator.AUTH_TOKEN_TYPE); + Account[] accounts = mAccountManager.getAccountsByType(MainApp.getAuthTokenType()); if (accounts.length == 0) { showDialog(DIALOG_NO_ACCOUNT); } else { @@ -296,7 +292,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro for (String a : mParents) full_path += a + "/"; - Log.d(TAG, "Populating view with content of : " + full_path); + Log_OC.d(TAG, "Populating view with content of : " + full_path); mFile = mStorageManager.getFileByPath(full_path); if (mFile != null) { @@ -315,7 +311,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro new String[] {"dirname"}, new int[] {R.id.textView1}); setListAdapter(sa); - Button btn = (Button) findViewById(R.id.uploader_choose_folder); + CustomButton btn = (CustomButton) findViewById(R.id.uploader_choose_folder); btn.setOnClickListener(this); getListView().setOnItemClickListener(this); } @@ -333,15 +329,19 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro public void uploadFiles() { try { - WebdavClient webdav = OwnCloudClientUtils.createOwnCloudClient(mAccount, getApplicationContext()); + //WebdavClient webdav = OwnCloudClientUtils.createOwnCloudClient(mAccount, getApplicationContext()); ArrayList local = new ArrayList(); ArrayList remote = new ArrayList(); + /* TODO - mCreateDir can never be true at this moment; we will replace wdc.createDirectory by CreateFolderOperation when that is fixed + WebdavClient wdc = OwnCloudClientUtils.createOwnCloudClient(mAccount, getApplicationContext()); // create last directory in path if necessary if (mCreateDir) { - webdav.createDirectory(mUploadPath); + wdc.createDirectory(mUploadPath); } + */ + // this checks the mimeType for (Parcelable mStream : mStreamsToUpload) { @@ -419,6 +419,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro startService(intent); finish(); } + } catch (SecurityException e) { String message = String.format(getString(R.string.uploader_error_forbidden_content), getString(R.string.app_name)); Toast.makeText(this, message, Toast.LENGTH_LONG).show();