|
@@ -23,7 +23,6 @@
|
|
package com.owncloud.android.ui.activity;
|
|
package com.owncloud.android.ui.activity;
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
-import java.io.IOException;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.LinkedList;
|
|
import java.util.LinkedList;
|
|
@@ -34,30 +33,19 @@ import java.util.Vector;
|
|
import com.owncloud.android.MainApp;
|
|
import com.owncloud.android.MainApp;
|
|
import com.owncloud.android.R;
|
|
import com.owncloud.android.R;
|
|
import com.owncloud.android.authentication.AccountAuthenticator;
|
|
import com.owncloud.android.authentication.AccountAuthenticator;
|
|
-import com.owncloud.android.authentication.AuthenticatorActivity;
|
|
|
|
-import com.owncloud.android.datamodel.FileDataStorageManager;
|
|
|
|
import com.owncloud.android.datamodel.OCFile;
|
|
import com.owncloud.android.datamodel.OCFile;
|
|
import com.owncloud.android.files.services.FileUploader;
|
|
import com.owncloud.android.files.services.FileUploader;
|
|
-import com.owncloud.android.lib.common.OwnCloudAccount;
|
|
|
|
-import com.owncloud.android.lib.common.OwnCloudClient;
|
|
|
|
-import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
|
|
|
|
-import com.owncloud.android.lib.common.OwnCloudCredentials;
|
|
|
|
-import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException;
|
|
|
|
import com.owncloud.android.lib.common.operations.RemoteOperation;
|
|
import com.owncloud.android.lib.common.operations.RemoteOperation;
|
|
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
|
|
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
|
|
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
|
|
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
|
|
import com.owncloud.android.lib.common.utils.Log_OC;
|
|
import com.owncloud.android.lib.common.utils.Log_OC;
|
|
import com.owncloud.android.operations.RefreshFolderOperation;
|
|
import com.owncloud.android.operations.RefreshFolderOperation;
|
|
-import com.owncloud.android.operations.SynchronizeFolderOperation;
|
|
|
|
|
|
|
|
import android.accounts.Account;
|
|
import android.accounts.Account;
|
|
import android.accounts.AccountManager;
|
|
import android.accounts.AccountManager;
|
|
import android.accounts.AuthenticatorException;
|
|
import android.accounts.AuthenticatorException;
|
|
-import android.accounts.OperationCanceledException;
|
|
|
|
import android.app.AlertDialog;
|
|
import android.app.AlertDialog;
|
|
import android.app.AlertDialog.Builder;
|
|
import android.app.AlertDialog.Builder;
|
|
-import android.accounts.Account;
|
|
|
|
-import android.accounts.AccountManager;
|
|
|
|
import android.app.Dialog;
|
|
import android.app.Dialog;
|
|
import android.app.ProgressDialog;
|
|
import android.app.ProgressDialog;
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.BroadcastReceiver;
|
|
@@ -74,7 +62,6 @@ import android.net.Uri;
|
|
import android.os.Bundle;
|
|
import android.os.Bundle;
|
|
import android.os.Parcelable;
|
|
import android.os.Parcelable;
|
|
import android.preference.PreferenceManager;
|
|
import android.preference.PreferenceManager;
|
|
-import android.provider.MediaStore;
|
|
|
|
import android.provider.MediaStore.Audio;
|
|
import android.provider.MediaStore.Audio;
|
|
import android.provider.MediaStore.Images;
|
|
import android.provider.MediaStore.Images;
|
|
import android.provider.MediaStore.Video;
|
|
import android.provider.MediaStore.Video;
|
|
@@ -92,20 +79,11 @@ import android.widget.Button;
|
|
import android.widget.EditText;
|
|
import android.widget.EditText;
|
|
import android.widget.ListView;
|
|
import android.widget.ListView;
|
|
import android.widget.ProgressBar;
|
|
import android.widget.ProgressBar;
|
|
-import android.widget.SimpleAdapter;
|
|
|
|
import android.widget.Toast;
|
|
import android.widget.Toast;
|
|
|
|
|
|
-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.operations.CreateFolderOperation;
|
|
import com.owncloud.android.operations.CreateFolderOperation;
|
|
import com.owncloud.android.syncadapter.FileSyncAdapter;
|
|
import com.owncloud.android.syncadapter.FileSyncAdapter;
|
|
-import com.owncloud.android.ui.adapter.ImageSimpleAdapter;
|
|
|
|
|
|
+import com.owncloud.android.ui.adapter.UploaderAdapter;
|
|
import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
|
|
import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
|
|
import com.owncloud.android.ui.dialog.LoadingDialog;
|
|
import com.owncloud.android.ui.dialog.LoadingDialog;
|
|
import com.owncloud.android.utils.CopyTmpFileAsyncTask;
|
|
import com.owncloud.android.utils.CopyTmpFileAsyncTask;
|
|
@@ -476,7 +454,7 @@ public class Uploader extends FileActivity
|
|
data.add(h);
|
|
data.add(h);
|
|
}
|
|
}
|
|
|
|
|
|
- ImageSimpleAdapter sa = new ImageSimpleAdapter(this,
|
|
|
|
|
|
+ UploaderAdapter sa = new UploaderAdapter(this,
|
|
data,
|
|
data,
|
|
R.layout.uploader_list_item_layout,
|
|
R.layout.uploader_list_item_layout,
|
|
new String[] {"dirname"},
|
|
new String[] {"dirname"},
|
|
@@ -766,15 +744,6 @@ public class Uploader extends FileActivity
|
|
startSyncFolderOperation(root);
|
|
startSyncFolderOperation(root);
|
|
}
|
|
}
|
|
|
|
|
|
- protected void requestCredentialsUpdate() {
|
|
|
|
- Intent updateAccountCredentials = new Intent(this, AuthenticatorActivity.class);
|
|
|
|
- updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, getAccount())
|
|
|
|
- .putExtra(AuthenticatorActivity.EXTRA_ACTION,
|
|
|
|
- AuthenticatorActivity.ACTION_UPDATE_EXPIRED_TOKEN)
|
|
|
|
- .addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
|
|
|
|
- startActivity(updateAccountCredentials);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
private class SyncBroadcastReceiver extends BroadcastReceiver {
|
|
private class SyncBroadcastReceiver extends BroadcastReceiver {
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -786,15 +755,19 @@ public class Uploader extends FileActivity
|
|
String event = intent.getAction();
|
|
String event = intent.getAction();
|
|
Log_OC.d(TAG, "Received broadcast " + event);
|
|
Log_OC.d(TAG, "Received broadcast " + event);
|
|
String accountName = intent.getStringExtra(FileSyncAdapter.EXTRA_ACCOUNT_NAME);
|
|
String accountName = intent.getStringExtra(FileSyncAdapter.EXTRA_ACCOUNT_NAME);
|
|
- String synchFolderRemotePath = intent.getStringExtra(FileSyncAdapter.EXTRA_FOLDER_PATH);
|
|
|
|
- RemoteOperationResult synchResult = (RemoteOperationResult) intent.getSerializableExtra(
|
|
|
|
- FileSyncAdapter.EXTRA_RESULT);
|
|
|
|
- boolean sameAccount = (getAccount() != null && accountName.equals(getAccount().name)
|
|
|
|
- && getStorageManager() != null);
|
|
|
|
|
|
+ String synchFolderRemotePath =
|
|
|
|
+ intent.getStringExtra(FileSyncAdapter.EXTRA_FOLDER_PATH);
|
|
|
|
+ RemoteOperationResult synchResult =
|
|
|
|
+ (RemoteOperationResult) intent.getSerializableExtra(
|
|
|
|
+ FileSyncAdapter.EXTRA_RESULT);
|
|
|
|
+ boolean sameAccount = (getAccount() != null &&
|
|
|
|
+ accountName.equals(getAccount().name) && getStorageManager() != null);
|
|
|
|
|
|
if (sameAccount) {
|
|
if (sameAccount) {
|
|
|
|
+
|
|
if (FileSyncAdapter.EVENT_FULL_SYNC_START.equals(event)) {
|
|
if (FileSyncAdapter.EVENT_FULL_SYNC_START.equals(event)) {
|
|
mSyncInProgress = true;
|
|
mSyncInProgress = true;
|
|
|
|
+
|
|
} else {
|
|
} else {
|
|
OCFile currentFile = (mFile == null) ? null :
|
|
OCFile currentFile = (mFile == null) ? null :
|
|
getStorageManager().getFileByPath(mFile.getRemotePath());
|
|
getStorageManager().getFileByPath(mFile.getRemotePath());
|
|
@@ -836,36 +809,12 @@ public class Uploader extends FileActivity
|
|
(synchResult.isException() && synchResult.getException()
|
|
(synchResult.isException() && synchResult.getException()
|
|
instanceof AuthenticatorException))) {
|
|
instanceof AuthenticatorException))) {
|
|
|
|
|
|
- OwnCloudClient client = null;
|
|
|
|
- try {
|
|
|
|
- OwnCloudAccount ocAccount =
|
|
|
|
- new OwnCloudAccount(getAccount(), context);
|
|
|
|
- client = (OwnCloudClientManagerFactory.getDefaultSingleton().
|
|
|
|
- removeClientFor(ocAccount));
|
|
|
|
- // TODO get rid of these exceptions
|
|
|
|
- } catch (AccountNotFoundException e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (client != null) {
|
|
|
|
- OwnCloudCredentials cred = client.getCredentials();
|
|
|
|
- if (cred != null) {
|
|
|
|
- AccountManager am = AccountManager.get(context);
|
|
|
|
- if (cred.authTokenExpires()) {
|
|
|
|
- am.invalidateAuthToken(
|
|
|
|
- getAccount().type,
|
|
|
|
- cred.getAuthToken()
|
|
|
|
- );
|
|
|
|
- } else {
|
|
|
|
- am.clearPassword(getAccount());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- requestCredentialsUpdate();
|
|
|
|
|
|
+ requestCredentialsUpdate(context);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
removeStickyBroadcast(intent);
|
|
removeStickyBroadcast(intent);
|
|
Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
|
|
Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
|
|
|
|
+
|
|
}
|
|
}
|
|
} catch (RuntimeException e) {
|
|
} catch (RuntimeException e) {
|
|
// avoid app crashes after changing the serial id of RemoteOperationResult
|
|
// avoid app crashes after changing the serial id of RemoteOperationResult
|