|
@@ -45,6 +45,7 @@ import android.provider.MediaStore;
|
|
import android.support.v4.app.Fragment;
|
|
import android.support.v4.app.Fragment;
|
|
import android.support.v4.app.FragmentManager;
|
|
import android.support.v4.app.FragmentManager;
|
|
import android.support.v4.app.FragmentTransaction;
|
|
import android.support.v4.app.FragmentTransaction;
|
|
|
|
+import android.support.v4.content.LocalBroadcastManager;
|
|
import android.util.Log;
|
|
import android.util.Log;
|
|
import android.view.View;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.view.ViewGroup;
|
|
@@ -69,8 +70,6 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
|
|
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
|
|
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
|
|
import com.owncloud.android.operations.CreateFolderOperation;
|
|
import com.owncloud.android.operations.CreateFolderOperation;
|
|
|
|
|
|
-import com.owncloud.android.operations.GetSharesOperation;
|
|
|
|
-
|
|
|
|
import com.owncloud.android.lib.operations.common.OnRemoteOperationListener;
|
|
import com.owncloud.android.lib.operations.common.OnRemoteOperationListener;
|
|
import com.owncloud.android.lib.operations.common.RemoteOperation;
|
|
import com.owncloud.android.lib.operations.common.RemoteOperation;
|
|
import com.owncloud.android.lib.operations.common.RemoteOperationResult;
|
|
import com.owncloud.android.lib.operations.common.RemoteOperationResult;
|
|
@@ -80,7 +79,7 @@ import com.owncloud.android.operations.RemoveFileOperation;
|
|
import com.owncloud.android.operations.RenameFileOperation;
|
|
import com.owncloud.android.operations.RenameFileOperation;
|
|
import com.owncloud.android.operations.SynchronizeFileOperation;
|
|
import com.owncloud.android.operations.SynchronizeFileOperation;
|
|
import com.owncloud.android.operations.SynchronizeFolderOperation;
|
|
import com.owncloud.android.operations.SynchronizeFolderOperation;
|
|
-import com.owncloud.android.operations.common.SyncOperation;
|
|
|
|
|
|
+import com.owncloud.android.services.OperationsService;
|
|
import com.owncloud.android.syncadapter.FileSyncService;
|
|
import com.owncloud.android.syncadapter.FileSyncService;
|
|
import com.owncloud.android.ui.dialog.EditNameDialog;
|
|
import com.owncloud.android.ui.dialog.EditNameDialog;
|
|
import com.owncloud.android.ui.dialog.EditNameDialog.EditNameDialogListener;
|
|
import com.owncloud.android.ui.dialog.EditNameDialog.EditNameDialogListener;
|
|
@@ -115,6 +114,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
|
private SyncBroadcastReceiver mSyncBroadcastReceiver;
|
|
private SyncBroadcastReceiver mSyncBroadcastReceiver;
|
|
private UploadFinishReceiver mUploadFinishReceiver;
|
|
private UploadFinishReceiver mUploadFinishReceiver;
|
|
private DownloadFinishReceiver mDownloadFinishReceiver;
|
|
private DownloadFinishReceiver mDownloadFinishReceiver;
|
|
|
|
+ private OperationsServiceReceiver mOperationsServiceReceiver;
|
|
private FileDownloaderBinder mDownloaderBinder = null;
|
|
private FileDownloaderBinder mDownloaderBinder = null;
|
|
private FileUploaderBinder mUploaderBinder = null;
|
|
private FileUploaderBinder mUploaderBinder = null;
|
|
private ServiceConnection mDownloadConnection = null, mUploadConnection = null;
|
|
private ServiceConnection mDownloadConnection = null, mUploadConnection = null;
|
|
@@ -704,6 +704,12 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
|
downloadIntentFilter.addAction(FileDownloader.getDownloadFinishMessage());
|
|
downloadIntentFilter.addAction(FileDownloader.getDownloadFinishMessage());
|
|
mDownloadFinishReceiver = new DownloadFinishReceiver();
|
|
mDownloadFinishReceiver = new DownloadFinishReceiver();
|
|
registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
|
|
registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
|
|
|
|
+
|
|
|
|
+ // Listen for messages from the OperationsService
|
|
|
|
+ IntentFilter operationsIntentFilter = new IntentFilter(OperationsService.ACTION_OPERATION_ADDED);
|
|
|
|
+ operationsIntentFilter.addAction(OperationsService.ACTION_OPERATION_FINISHED);
|
|
|
|
+ mOperationsServiceReceiver = new OperationsServiceReceiver();
|
|
|
|
+ LocalBroadcastManager.getInstance(this).registerReceiver(mOperationsServiceReceiver, operationsIntentFilter);
|
|
|
|
|
|
Log_OC.d(TAG, "onResume() end");
|
|
Log_OC.d(TAG, "onResume() end");
|
|
}
|
|
}
|
|
@@ -725,7 +731,10 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
|
unregisterReceiver(mDownloadFinishReceiver);
|
|
unregisterReceiver(mDownloadFinishReceiver);
|
|
mDownloadFinishReceiver = null;
|
|
mDownloadFinishReceiver = null;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ if (mOperationsServiceReceiver != null) {
|
|
|
|
+ LocalBroadcastManager.getInstance(this).unregisterReceiver(mOperationsServiceReceiver);
|
|
|
|
+ mOperationsServiceReceiver = null;
|
|
|
|
+ }
|
|
Log_OC.d(TAG, "onPause() end");
|
|
Log_OC.d(TAG, "onPause() end");
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1034,6 +1043,45 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
|
return (accountName != null && getAccount() != null && accountName.equals(getAccount().name));
|
|
return (accountName != null && getAccount() != null && accountName.equals(getAccount().name));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Class waiting for broadcast events from the {@link OperationsService}.
|
|
|
|
+ *
|
|
|
|
+ * Updates the list of files when a get for shares is finished; at this moment the refresh of shares is the only
|
|
|
|
+ * operation performed in {@link OperationsService}.
|
|
|
|
+ *
|
|
|
|
+ * In the future will handle the progress or finalization of all the operations performed in {@link OperationsService},
|
|
|
|
+ * probably all the operations associated to the app model.
|
|
|
|
+ */
|
|
|
|
+ private class OperationsServiceReceiver extends BroadcastReceiver {
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void onReceive(Context context, Intent intent) {
|
|
|
|
+ if (OperationsService.ACTION_OPERATION_ADDED.equals(intent.getAction())) {
|
|
|
|
+
|
|
|
|
+ } else if (OperationsService.ACTION_OPERATION_FINISHED.equals(intent.getAction())) {
|
|
|
|
+ mRefreshSharesInProgress = false;
|
|
|
|
+
|
|
|
|
+ Account account = intent.getParcelableExtra(OperationsService.EXTRA_ACCOUNT);
|
|
|
|
+ RemoteOperationResult getSharesResult = (RemoteOperationResult)intent.getSerializableExtra(OperationsService.EXTRA_RESULT);
|
|
|
|
+ if (getAccount() != null && account.name.equals(getAccount().name)
|
|
|
|
+ && mStorageManager != null
|
|
|
|
+ ) {
|
|
|
|
+ refeshListOfFilesFragment();
|
|
|
|
+ }
|
|
|
|
+ if ((getSharesResult != null) &&
|
|
|
|
+ RemoteOperationResult.ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED.equals(getSharesResult.getCode())) {
|
|
|
|
+ mLastSslUntrustedServerResult = getSharesResult;
|
|
|
|
+ showDialog(DIALOG_SSL_VALIDATOR);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ setSupportProgressBarIndeterminateVisibility(mRefreshSharesInProgress || mSyncInProgress);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -1298,29 +1346,10 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
|
|
|
|
|
} else if (operation instanceof CreateFolderOperation) {
|
|
} else if (operation instanceof CreateFolderOperation) {
|
|
onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
|
|
onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
|
|
-
|
|
|
|
- } else if (operation instanceof GetSharesOperation) {
|
|
|
|
- onGetSharesOperationFinish((GetSharesOperation) operation, result);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- /** Updates the data about shared files
|
|
|
|
- *
|
|
|
|
- * @param operation Get Shared Files
|
|
|
|
- * @param result Result of the operation
|
|
|
|
- */
|
|
|
|
- private void onGetSharesOperationFinish(GetSharesOperation operation, RemoteOperationResult result) {
|
|
|
|
- // Refresh the filelist with the information
|
|
|
|
- refeshListOfFilesFragment();
|
|
|
|
-
|
|
|
|
- mRefreshSharesInProgress = false;
|
|
|
|
-
|
|
|
|
- if (!mSyncInProgress) {
|
|
|
|
- setSupportProgressBarIndeterminateVisibility(false);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* Updates the view associated to the activity after the finish of an operation trying to remove a
|
|
* Updates the view associated to the activity after the finish of an operation trying to remove a
|
|
* file.
|
|
* file.
|
|
@@ -1532,23 +1561,13 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
|
|
|
|
|
private void startGetShares() {
|
|
private void startGetShares() {
|
|
// Get shared files/folders
|
|
// Get shared files/folders
|
|
- SyncOperation getShares = new GetSharesOperation();
|
|
|
|
- getShares.execute(mStorageManager, this, this, mHandler, this);
|
|
|
|
|
|
+ Intent intent = new Intent(this, OperationsService.class);
|
|
|
|
+ intent.putExtra(OperationsService.EXTRA_ACCOUNT, getAccount());
|
|
|
|
+ startService(intent);
|
|
|
|
|
|
mRefreshSharesInProgress = true;
|
|
mRefreshSharesInProgress = true;
|
|
setSupportProgressBarIndeterminateVisibility(true);
|
|
setSupportProgressBarIndeterminateVisibility(true);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-// public void enableDisableViewGroup(ViewGroup viewGroup, boolean enabled) {
|
|
|
|
-// int childCount = viewGroup.getChildCount();
|
|
|
|
-// for (int i = 0; i < childCount; i++) {
|
|
|
|
-// View view = viewGroup.getChildAt(i);
|
|
|
|
-// view.setEnabled(enabled);
|
|
|
|
-// view.setClickable(!enabled);
|
|
|
|
-// if (view instanceof ViewGroup) {
|
|
|
|
-// enableDisableViewGroup((ViewGroup) view, enabled);
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
}
|
|
}
|