From: David A. Velasco Date: Thu, 30 Jan 2014 17:33:45 +0000 (+0100) Subject: Merge branch 'share_link_show_shared_files' into bug_in_refresh_of_shared_state_when_... X-Git-Tag: oc-android-1.5.5~35^2~40^2 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/d8eb34aa4934681bffd14346bbe9a36c68099614?ds=inline;hp=-c Merge branch 'share_link_show_shared_files' into bug_in_refresh_of_shared_state_when_device_is_rotated --- d8eb34aa4934681bffd14346bbe9a36c68099614 diff --combined src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 5a324a54,737810ff..3cdf19b0 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@@ -45,7 -45,6 +45,7 @@@ import android.provider.MediaStore import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; +import android.support.v4.content.LocalBroadcastManager; import android.util.Log; import android.view.View; import android.view.ViewGroup; @@@ -70,6 -69,8 +70,6 @@@ import com.owncloud.android.files.servi import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; 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.RemoteOperation; import com.owncloud.android.lib.operations.common.RemoteOperationResult; @@@ -79,7 -80,6 +79,7 @@@ import com.owncloud.android.operations. import com.owncloud.android.operations.RenameFileOperation; import com.owncloud.android.operations.SynchronizeFileOperation; import com.owncloud.android.operations.SynchronizeFolderOperation; +import com.owncloud.android.services.OperationsService; import com.owncloud.android.syncadapter.FileSyncService; import com.owncloud.android.ui.dialog.EditNameDialog; import com.owncloud.android.ui.dialog.EditNameDialog.EditNameDialogListener; @@@ -114,7 -114,6 +114,7 @@@ OCFileListFragment.ContainerActivity, F private SyncBroadcastReceiver mSyncBroadcastReceiver; private UploadFinishReceiver mUploadFinishReceiver; private DownloadFinishReceiver mDownloadFinishReceiver; + private OperationsServiceReceiver mOperationsServiceReceiver; private FileDownloaderBinder mDownloaderBinder = null; private FileUploaderBinder mUploaderBinder = null; private ServiceConnection mDownloadConnection = null, mUploadConnection = null; @@@ -704,12 -703,6 +704,12 @@@ downloadIntentFilter.addAction(FileDownloader.getDownloadFinishMessage()); mDownloadFinishReceiver = new DownloadFinishReceiver(); 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"); } @@@ -731,10 -724,7 +731,10 @@@ unregisterReceiver(mDownloadFinishReceiver); mDownloadFinishReceiver = null; } - + if (mOperationsServiceReceiver != null) { + LocalBroadcastManager.getInstance(this).unregisterReceiver(mOperationsServiceReceiver); + mOperationsServiceReceiver = null; + } Log_OC.d(TAG, "onPause() end"); } @@@ -933,13 -923,7 +933,7 @@@ RemoteOperationResult synchResult = (RemoteOperationResult)intent.getSerializableExtra(FileSyncService.SYNC_RESULT); if (getAccount() != null && accountName.equals(getAccount().name) - && mStorageManager != null - ) { - - /// get the shared files - if (isSharedSupported()) { - startGetShares(); - } + && mStorageManager != null) { String synchFolderRemotePath = intent.getStringExtra(FileSyncService.SYNC_FOLDER_REMOTE_PATH); @@@ -971,6 -955,10 +965,10 @@@ } if (!mRefreshSharesInProgress) { + /// get the shared files + if (isSharedSupported()) { + startGetShares(); + } setSupportProgressBarIndeterminateVisibility(inProgress); } else { setSupportProgressBarIndeterminateVisibility(true); @@@ -1043,45 -1031,6 +1041,45 @@@ 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); + } + + } + + } /** @@@ -1346,10 -1295,29 +1344,10 @@@ } else if (operation instanceof CreateFolderOperation) { 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 * file. @@@ -1561,13 -1529,23 +1559,13 @@@ private void startGetShares() { // Get shared files/folders - RemoteOperation getShares = new GetSharesOperation(mStorageManager); - getShares.execute(getAccount(), this, this, mHandler, this); + Intent intent = new Intent(this, OperationsService.class); + intent.putExtra(OperationsService.EXTRA_ACCOUNT, getAccount()); + startService(intent); mRefreshSharesInProgress = 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); -// } -// } -// } }