From: masensio Date: Thu, 6 Feb 2014 18:10:08 +0000 (+0100) Subject: OC-2859: Fix bug: Unshare option shouldn't appear in non-shared files/folders X-Git-Tag: oc-android-1.5.5~35^2~19 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/d1aca3a171e0301c4f21f9dfc12f813923cc919a?ds=inline OC-2859: Fix bug: Unshare option shouldn't appear in non-shared files/folders --- diff --git a/owncloud-android-library b/owncloud-android-library index 0f06f2f7..1dda56e8 160000 --- a/owncloud-android-library +++ b/owncloud-android-library @@ -1 +1 @@ -Subproject commit 0f06f2f7fd3d89f3d40dce10453ae71702fa4dee +Subproject commit 1dda56e83448a149360e1f262c4afb23a375b137 diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 55b89bd6..5d2f777d 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -86,6 +86,7 @@ import com.owncloud.android.ui.fragment.FileDetailFragment; import com.owncloud.android.ui.fragment.FileFragment; import com.owncloud.android.ui.fragment.OCFileListFragment; import com.owncloud.android.ui.preview.PreviewImageActivity; +import com.owncloud.android.ui.preview.PreviewImageFragment; import com.owncloud.android.ui.preview.PreviewMediaFragment; import com.owncloud.android.ui.preview.PreviewVideoActivity; import com.owncloud.android.utils.DisplayUtils; @@ -1318,6 +1319,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) { if (result.isSuccess()) { + refreshShowDetails(); refeshListOfFilesFragment(); } } @@ -1325,10 +1327,27 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) { if (result.isSuccess()) { + refreshShowDetails(); refeshListOfFilesFragment(); } } + private void refreshShowDetails() { + FileFragment details = getSecondFragment(); + if (details != null) { + OCFile file = details.getFile(); + if (file != null) { + file = getStorageManager().getFileByPath(file.getRemotePath()); { + if (!(details instanceof PreviewMediaFragment || details instanceof PreviewImageFragment)) { + showDetails(file); + } else if (details instanceof PreviewMediaFragment) { + startMediaPreview(file, 0, false); + } + } + invalidateOptionsMenu(); + } + } + } /** * Updates the view associated to the activity after the finish of an operation trying to remove a diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index 810602a8..66530645 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -257,6 +257,11 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName toHide.add(R.id.action_cancel_upload); } } + + // Options shareLink + if (!targetFile.isShareByLink()) { + toHide.add(R.id.action_unshare_file); + } for (int i : toHide) { item = menu.findItem(i); diff --git a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java index 374a53b7..8ef5fc23 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java +++ b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java @@ -45,6 +45,10 @@ 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.operations.common.OnRemoteOperationListener; +import com.owncloud.android.lib.operations.common.RemoteOperation; +import com.owncloud.android.lib.operations.common.RemoteOperationResult; +import com.owncloud.android.operations.CreateShareOperation; import com.owncloud.android.ui.activity.FileActivity; import com.owncloud.android.ui.activity.FileDisplayActivity; import com.owncloud.android.ui.activity.PinCodeActivity; @@ -59,7 +63,7 @@ import com.owncloud.android.utils.Log_OC; * * @author David A. Velasco */ -public class PreviewImageActivity extends FileActivity implements FileFragment.ContainerActivity, ViewPager.OnPageChangeListener, OnTouchListener { +public class PreviewImageActivity extends FileActivity implements FileFragment.ContainerActivity, ViewPager.OnPageChangeListener, OnTouchListener , OnRemoteOperationListener{ public static final int DIALOG_SHORT_WAIT = 0; @@ -147,7 +151,26 @@ public class PreviewImageActivity extends FileActivity implements FileFragment.C outState.putBoolean(KEY_WAITING_FOR_BINDER, mRequestWaitingForBinder); } - + @Override + public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) { + super.onRemoteOperationFinish(operation, result); + + if (operation instanceof CreateShareOperation) { + onCreateShareOperationFinish((CreateShareOperation) operation, result); + + } + } + + private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) { + if (result.isSuccess()) { + OCFile file = getStorageManager().getFileByPath(getFile().getRemotePath()); + if (file != null) { + setFile(file); + invalidateOptionsMenu(); + } + } + } + /** Defines callbacks for service binding, passed to bindService() */ private class PreviewImageServiceConnection implements ServiceConnection { diff --git a/src/com/owncloud/android/ui/preview/PreviewImageFragment.java b/src/com/owncloud/android/ui/preview/PreviewImageFragment.java index d8622f24..8720eefd 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImageFragment.java +++ b/src/com/owncloud/android/ui/preview/PreviewImageFragment.java @@ -253,6 +253,12 @@ public class PreviewImageFragment extends FileFragment implements OnRemoteOper public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); + // Trick to update the file + OCFile file = ((PreviewImageActivity) getActivity()).getStorageManager().getFileByPath(getFile().getRemotePath()); + if (file!= null) { + setFile(file); + } + // Options shareLink if (!getFile().isShareByLink()) { MenuItem item = menu.findItem(R.id.action_unshare_file);