|
@@ -35,12 +35,15 @@ import android.content.DialogInterface.OnClickListener;
|
|
import android.content.Intent;
|
|
import android.content.Intent;
|
|
import android.content.IntentFilter;
|
|
import android.content.IntentFilter;
|
|
import android.content.res.Resources.NotFoundException;
|
|
import android.content.res.Resources.NotFoundException;
|
|
|
|
+import android.graphics.drawable.Drawable;
|
|
import android.os.Bundle;
|
|
import android.os.Bundle;
|
|
import android.os.Parcelable;
|
|
import android.os.Parcelable;
|
|
import android.support.annotation.NonNull;
|
|
import android.support.annotation.NonNull;
|
|
import android.support.annotation.Nullable;
|
|
import android.support.annotation.Nullable;
|
|
import android.support.v4.app.DialogFragment;
|
|
import android.support.v4.app.DialogFragment;
|
|
import android.support.v4.app.FragmentManager;
|
|
import android.support.v4.app.FragmentManager;
|
|
|
|
+import android.support.v4.content.ContextCompat;
|
|
|
|
+import android.support.v4.graphics.drawable.DrawableCompat;
|
|
import android.support.v7.app.ActionBar;
|
|
import android.support.v7.app.ActionBar;
|
|
import android.support.v7.app.AlertDialog;
|
|
import android.support.v7.app.AlertDialog;
|
|
import android.support.v7.app.AlertDialog.Builder;
|
|
import android.support.v7.app.AlertDialog.Builder;
|
|
@@ -75,13 +78,14 @@ import com.owncloud.android.operations.CreateFolderOperation;
|
|
import com.owncloud.android.operations.RefreshFolderOperation;
|
|
import com.owncloud.android.operations.RefreshFolderOperation;
|
|
import com.owncloud.android.operations.UploadFileOperation;
|
|
import com.owncloud.android.operations.UploadFileOperation;
|
|
import com.owncloud.android.syncadapter.FileSyncAdapter;
|
|
import com.owncloud.android.syncadapter.FileSyncAdapter;
|
|
|
|
+import com.owncloud.android.ui.adapter.AccountListAdapter;
|
|
|
|
+import com.owncloud.android.ui.adapter.AccountListItem;
|
|
import com.owncloud.android.ui.adapter.UploaderAdapter;
|
|
import com.owncloud.android.ui.adapter.UploaderAdapter;
|
|
import com.owncloud.android.ui.asynctasks.CopyAndUploadContentUrisTask;
|
|
import com.owncloud.android.ui.asynctasks.CopyAndUploadContentUrisTask;
|
|
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
|
|
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
|
|
import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
|
|
import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
|
|
import com.owncloud.android.ui.fragment.TaskRetainerFragment;
|
|
import com.owncloud.android.ui.fragment.TaskRetainerFragment;
|
|
import com.owncloud.android.ui.helpers.UriUploader;
|
|
import com.owncloud.android.ui.helpers.UriUploader;
|
|
-import com.owncloud.android.utils.DisplayUtils;
|
|
|
|
import com.owncloud.android.utils.ErrorMessageAdapter;
|
|
import com.owncloud.android.utils.ErrorMessageAdapter;
|
|
import com.owncloud.android.utils.FileStorageUtils;
|
|
import com.owncloud.android.utils.FileStorageUtils;
|
|
|
|
|
|
@@ -102,9 +106,10 @@ import java.util.Vector;
|
|
/**
|
|
/**
|
|
* This can be used to upload things to an ownCloud instance.
|
|
* This can be used to upload things to an ownCloud instance.
|
|
*/
|
|
*/
|
|
-public class ReceiveExternalFilesActivity extends FileActivity
|
|
|
|
- implements OnItemClickListener, android.view.View.OnClickListener,
|
|
|
|
- CopyAndUploadContentUrisTask.OnCopyTmpFilesTaskListener {
|
|
|
|
|
|
+public class ReceiveExternalFilesActivity extends FileActivity implements
|
|
|
|
+ OnItemClickListener,
|
|
|
|
+ android.view.View.OnClickListener,
|
|
|
|
+ CopyAndUploadContentUrisTask.OnCopyTmpFilesTaskListener {
|
|
|
|
|
|
private static final String TAG = ReceiveExternalFilesActivity.class.getSimpleName();
|
|
private static final String TAG = ReceiveExternalFilesActivity.class.getSimpleName();
|
|
|
|
|
|
@@ -251,8 +256,8 @@ public class ReceiveExternalFilesActivity extends FileActivity
|
|
if (android.os.Build.VERSION.SDK_INT >
|
|
if (android.os.Build.VERSION.SDK_INT >
|
|
android.os.Build.VERSION_CODES.ECLAIR_MR1) {
|
|
android.os.Build.VERSION_CODES.ECLAIR_MR1) {
|
|
// using string value since in API7 this
|
|
// using string value since in API7 this
|
|
- // constatn is not defined
|
|
|
|
- // in API7 < this constatant is defined in
|
|
|
|
|
|
+ // constant is not defined
|
|
|
|
+ // in API7 < this constant is defined in
|
|
// Settings.ADD_ACCOUNT_SETTINGS
|
|
// Settings.ADD_ACCOUNT_SETTINGS
|
|
// and Settings.EXTRA_AUTHORITIES
|
|
// and Settings.EXTRA_AUTHORITIES
|
|
Intent intent = new Intent(android.provider.Settings.ACTION_ADD_ACCOUNT);
|
|
Intent intent = new Intent(android.provider.Settings.ACTION_ADD_ACCOUNT);
|
|
@@ -261,9 +266,9 @@ public class ReceiveExternalFilesActivity extends FileActivity
|
|
} else {
|
|
} else {
|
|
// since in API7 there is no direct call for
|
|
// since in API7 there is no direct call for
|
|
// account setup, so we need to
|
|
// account setup, so we need to
|
|
- // show our own AccountSetupAcricity, get
|
|
|
|
|
|
+ // show our own AccountSetupActivity, get
|
|
// desired results and setup
|
|
// desired results and setup
|
|
- // everything for ourself
|
|
|
|
|
|
+ // everything for ourselves
|
|
Intent intent = new Intent(getActivity().getBaseContext(), AccountAuthenticator.class);
|
|
Intent intent = new Intent(getActivity().getBaseContext(), AccountAuthenticator.class);
|
|
startActivityForResult(intent, REQUEST_CODE__SETUP_ACCOUNT);
|
|
startActivityForResult(intent, REQUEST_CODE__SETUP_ACCOUNT);
|
|
}
|
|
}
|
|
@@ -280,19 +285,24 @@ public class ReceiveExternalFilesActivity extends FileActivity
|
|
}
|
|
}
|
|
|
|
|
|
public static class DialogMultipleAccount extends DialogFragment {
|
|
public static class DialogMultipleAccount extends DialogFragment {
|
|
|
|
+ private AccountListAdapter mAccountListAdapter;
|
|
|
|
+ private Drawable mTintedCheck;
|
|
|
|
+
|
|
@NonNull
|
|
@NonNull
|
|
@Override
|
|
@Override
|
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
|
final ReceiveExternalFilesActivity parent = (ReceiveExternalFilesActivity) getActivity();
|
|
final ReceiveExternalFilesActivity parent = (ReceiveExternalFilesActivity) getActivity();
|
|
AlertDialog.Builder builder = new Builder(parent);
|
|
AlertDialog.Builder builder = new Builder(parent);
|
|
- Account accounts[] = parent.mAccountManager.getAccountsByType(MainApp.getAccountType());
|
|
|
|
- CharSequence dialogItems[] = new CharSequence[accounts.length];
|
|
|
|
- for (int i = 0; i < dialogItems.length; ++i) {
|
|
|
|
- dialogItems[i] = DisplayUtils.getAccountNameDisplayText(
|
|
|
|
- parent, accounts[i], accounts[i].name, DisplayUtils.convertIdn(accounts[i].name, false));
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
+ mTintedCheck = DrawableCompat.wrap(ContextCompat.getDrawable(parent,
|
|
|
|
+ R.drawable.ic_account_circle_white_18dp));
|
|
|
|
+ int tint = ContextCompat.getColor(parent, R.color.primary);
|
|
|
|
+ DrawableCompat.setTint(mTintedCheck, tint);
|
|
|
|
+
|
|
|
|
+ mAccountListAdapter = new AccountListAdapter(parent, getAccountListItems(parent), mTintedCheck);
|
|
|
|
+
|
|
builder.setTitle(R.string.common_choose_account);
|
|
builder.setTitle(R.string.common_choose_account);
|
|
- builder.setItems(dialogItems, new OnClickListener() {
|
|
|
|
|
|
+ builder.setAdapter(mAccountListAdapter, new OnClickListener() {
|
|
@Override
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
final ReceiveExternalFilesActivity parent = (ReceiveExternalFilesActivity) getActivity();
|
|
final ReceiveExternalFilesActivity parent = (ReceiveExternalFilesActivity) getActivity();
|
|
@@ -307,6 +317,21 @@ public class ReceiveExternalFilesActivity extends FileActivity
|
|
return builder.create();
|
|
return builder.create();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * creates the account list items list including the add-account action in case multiaccount_support is enabled.
|
|
|
|
+ *
|
|
|
|
+ * @return list of account list items
|
|
|
|
+ */
|
|
|
|
+ private ArrayList<AccountListItem> getAccountListItems(ReceiveExternalFilesActivity activity) {
|
|
|
|
+ Account[] accountList = activity.mAccountManager.getAccountsByType(MainApp.getAccountType());
|
|
|
|
+ ArrayList<AccountListItem> adapterAccountList = new ArrayList<>(accountList.length);
|
|
|
|
+ for (Account account : accountList) {
|
|
|
|
+ adapterAccountList.add(new AccountListItem(account));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return adapterAccountList;
|
|
|
|
+ }
|
|
|
|
+
|
|
public void onCancel(DialogInterface dialog) {
|
|
public void onCancel(DialogInterface dialog) {
|
|
super.onCancel(dialog);
|
|
super.onCancel(dialog);
|
|
final ReceiveExternalFilesActivity parent = (ReceiveExternalFilesActivity) getActivity();
|
|
final ReceiveExternalFilesActivity parent = (ReceiveExternalFilesActivity) getActivity();
|