X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/e64a3cbf3547b87f1462aaac628350cdb1ae33e6..8d38fd331d43f21800843ae4cf340bc33e583a40:/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 27753880..49437303 100644 --- a/src/com/owncloud/android/ui/activity/FileActivity.java +++ b/src/com/owncloud/android/ui/activity/FileActivity.java @@ -42,10 +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.lib.operations.common.OnRemoteOperationListener; -import com.owncloud.android.lib.operations.common.RemoteOperation; -import com.owncloud.android.lib.operations.common.RemoteOperationResult; -import com.owncloud.android.lib.operations.common.RemoteOperationResult.ResultCode; +import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; +import com.owncloud.android.lib.common.operations.RemoteOperation; +import com.owncloud.android.lib.common.operations.RemoteOperationResult; +import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.operations.CreateShareOperation; import com.owncloud.android.operations.UnshareLinkOperation; @@ -150,28 +150,36 @@ 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); + } + + super.onStart(); } @Override protected void onStop() { - super.onStop(); + if (mOperationsServiceBinder != null) { mOperationsServiceBinder.removeOperationListener(this); - mOperationsServiceBinder = null; } + + super.onStop(); } @Override protected void onDestroy() { super.onDestroy(); - if (mOperationsServiceConnection != null) + if (mOperationsServiceConnection != null) { unbindService(mOperationsServiceConnection); + mOperationsServiceBinder = null; + } } @@ -298,6 +306,11 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp } + public OperationsServiceBinder getOperationsServiceBinder() { + return mOperationsServiceBinder; + } + + /** * Helper class handling a callback from the {@link AccountManager} after the creation of * a new ownCloud {@link Account} finished, successfully or not. @@ -393,6 +406,8 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) { dismissLoadingDialog(); if (result.isSuccess()) { + updateFileFromDB(); + Intent sendIntent = operation.getSendIntent(); startActivity(sendIntent); @@ -410,10 +425,13 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) { dismissLoadingDialog(); - if (result.getCode() == ResultCode.SHARE_NOT_FOUND) { // Error --> SHARE_NOT_FOUND + if (result.isSuccess()){ + updateFileFromDB(); + + } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND) { // Error --> SHARE_NOT_FOUND Toast t = Toast.makeText(this, getString(R.string.unshare_link_file_no_exist), Toast.LENGTH_LONG); t.show(); - } else if (!result.isSuccess()){ // Generic error + } else { // Generic error // Show a Message, operation finished without success Toast t = Toast.makeText(this, getString(R.string.unshare_link_file_error), Toast.LENGTH_LONG); t.show(); @@ -421,6 +439,14 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp } + + private void updateFileFromDB(){ + OCFile file = getStorageManager().getFileByPath(getFile().getRemotePath()); + if (file != null) { + setFile(file); + } + } + /** * Show loading dialog */ @@ -456,7 +482,7 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp if (component.equals(new ComponentName(FileActivity.this, OperationsService.class))) { Log_OC.d(TAG, "Operations service connected"); mOperationsServiceBinder = (OperationsServiceBinder) service; - mOperationsServiceBinder.addOperationListener(FileActivity.this); + mOperationsServiceBinder.addOperationListener(FileActivity.this, mHandler); if (!mOperationsServiceBinder.isPerformingBlockingOperation()) { dismissLoadingDialog(); }