X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/df4d0355f25795914dd0fcb9d53a9113da047c15..4e9becbc974cddc38a6d25e6469bfb56947f5147:/src/com/owncloud/android/ui/activity/FileActivity.java diff --git a/src/com/owncloud/android/ui/activity/FileActivity.java b/src/com/owncloud/android/ui/activity/FileActivity.java index 1b211079..a19a362b 100644 --- a/src/com/owncloud/android/ui/activity/FileActivity.java +++ b/src/com/owncloud/android/ui/activity/FileActivity.java @@ -18,8 +18,6 @@ package com.owncloud.android.ui.activity; -import java.io.File; - import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AccountManagerCallback; @@ -44,6 +42,10 @@ import com.owncloud.android.authentication.AccountUtils; import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.FileOperationsHelper; +import com.owncloud.android.files.services.FileDownloader; +import com.owncloud.android.files.services.FileUploader; +import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; +import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -54,7 +56,6 @@ import com.owncloud.android.operations.UnshareLinkOperation; import com.owncloud.android.services.OperationsService; import com.owncloud.android.services.OperationsService.OperationsServiceBinder; import com.owncloud.android.ui.dialog.LoadingDialog; -import com.owncloud.android.utils.FileStorageUtils; import com.owncloud.android.utils.Log_OC; @@ -63,7 +64,8 @@ import com.owncloud.android.utils.Log_OC; * * @author David A. Velasco */ -public class FileActivity extends SherlockFragmentActivity implements OnRemoteOperationListener { +public class FileActivity extends SherlockFragmentActivity +implements OnRemoteOperationListener, ComponentsGetter { public static final String EXTRA_FILE = "com.owncloud.android.ui.activity.FILE"; public static final String EXTRA_ACCOUNT = "com.owncloud.android.ui.activity.ACCOUNT"; @@ -104,7 +106,11 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp private ServiceConnection mOperationsServiceConnection = null; private OperationsServiceBinder mOperationsServiceBinder = null; - + + protected FileDownloaderBinder mDownloaderBinder = null; + protected FileUploaderBinder mUploaderBinder = null; + private ServiceConnection mDownloadServiceConnection, mUploadServiceConnection = null; + /** * Loads the ownCloud {@link Account} and main {@link OCFile} to be handled by the instance of @@ -117,7 +123,7 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mHandler = new Handler(); - mFileOperationsHelper = new FileOperationsHelper(); + mFileOperationsHelper = new FileOperationsHelper(this); Account account; if(savedInstanceState != null) { account = savedInstanceState.getParcelable(FileActivity.EXTRA_ACCOUNT); @@ -133,6 +139,16 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp mOperationsServiceConnection = new OperationsServiceConnection(); bindService(new Intent(this, OperationsService.class), mOperationsServiceConnection, Context.BIND_AUTO_CREATE); + + mDownloadServiceConnection = newTransferenceServiceConnection(); + if (mDownloadServiceConnection != null) { + bindService(new Intent(this, FileDownloader.class), mDownloadServiceConnection, Context.BIND_AUTO_CREATE); + } + mUploadServiceConnection = newTransferenceServiceConnection(); + if (mUploadServiceConnection != null) { + bindService(new Intent(this, FileUploader.class), mUploadServiceConnection, Context.BIND_AUTO_CREATE); + } + } @@ -154,22 +170,24 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp @Override protected void onStart() { super.onStart(); + if (mAccountWasSet) { onAccountSet(mAccountWasRestored); } if (mOperationsServiceBinder != null) { mOperationsServiceBinder.addOperationListener(FileActivity.this, mHandler); } - } @Override protected void onStop() { - super.onStop(); + if (mOperationsServiceBinder != null) { mOperationsServiceBinder.removeOperationListener(this); } + + super.onStop(); } @@ -180,6 +198,14 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp unbindService(mOperationsServiceConnection); mOperationsServiceBinder = null; } + if (mDownloadServiceConnection != null) { + unbindService(mDownloadServiceConnection); + mDownloadServiceConnection = null; + } + if (mUploadServiceConnection != null) { + unbindService(mUploadServiceConnection); + mUploadServiceConnection = null; + } } @@ -306,6 +332,15 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp } + public OperationsServiceBinder getOperationsServiceBinder() { + return mOperationsServiceBinder; + } + + protected ServiceConnection newTransferenceServiceConnection() { + return null; + } + + /** * Helper class handling a callback from the {@link AccountManager} after the creation of * a new ownCloud {@link Account} finished, successfully or not. @@ -380,7 +415,7 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp public FileOperationsHelper getFileOperationsHelper() { return mFileOperationsHelper; } - + /** * * @param operation Removal operation performed. @@ -500,19 +535,15 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - - Log_OC.d(TAG, "requestCode " + String.valueOf(requestCode) ); - if (requestCode == FileOperationsHelper.REQUEST_CODE_FILE_OPEN_HELPER) { - // Remove "send" folder - File folder = new File(FileStorageUtils.getTemporalPath(getAccount().name) + "/send"); - if (folder.exists()) { - FileStorageUtils.deleteFolder(folder); - } - } - - }; + public FileDownloaderBinder getFileDownloaderBinder() { + return mDownloaderBinder; + } + @Override + public FileUploaderBinder getFileUploaderBinder() { + return mUploaderBinder; + }; + + }