diff options
author | stefan-niedermann <info@niedermann.it> | 2020-03-07 21:24:43 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2020-03-07 21:24:43 +0300 |
commit | f180824ec20453fe281d859bdd04aac53684ae16 (patch) | |
tree | c635b2ce5e2b2a5ad54f395970b5b120d35f21d1 /app/src/main/java/it/niedermann/nextcloud/deck/ui/AttachmentsActivity.java | |
parent | 656f1d4cc1596a7b6b5fc4b2aa28d8726956acc7 (diff) |
Make attachment viewer swipeable
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/AttachmentsActivity.java')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/AttachmentsActivity.java | 47 |
1 files changed, 27 insertions, 20 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/AttachmentsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/AttachmentsActivity.java index 411acdb90..93799e138 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/AttachmentsActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/AttachmentsActivity.java @@ -4,8 +4,7 @@ import android.os.Bundle; import android.view.MotionEvent; import androidx.appcompat.app.AppCompatActivity; - -import com.bumptech.glide.Glide; +import androidx.recyclerview.widget.RecyclerView; import java.util.List; @@ -13,8 +12,8 @@ import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.databinding.ActivityAttachmentsBinding; import it.niedermann.nextcloud.deck.model.Attachment; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; +import it.niedermann.nextcloud.deck.ui.attachments.AttachmentAdapter; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; -import it.niedermann.nextcloud.deck.util.AttachmentUtil; import static it.niedermann.nextcloud.deck.ui.card.CardAdapter.BUNDLE_KEY_ACCOUNT_ID; import static it.niedermann.nextcloud.deck.ui.card.CardAdapter.BUNDLE_KEY_LOCAL_ID; @@ -51,26 +50,34 @@ public class AttachmentsActivity extends AppCompatActivity { List<Attachment> attachments = fullCard.getAttachments(); if (fullCard.getAttachments().size() == 0) { DeckLog.logError(new IllegalStateException(AttachmentsActivity.class.getSimpleName() + " called, but card " + fullCard.getLocalId() + "has no attachments")); - finish(); - } else { - if (currentAttachment != 0L) { - for (Attachment a : attachments) { - if (a.getLocalId() == currentAttachment) { - Glide.with(this) - .load(AttachmentUtil.getUrl(account.getUrl(), fullCard.getId(), a.getId())) - .into(binding.image); - binding.toolbar.setTitle(a.getBasename()); - break; - } + supportFinishAfterTransition(); + return; + } + RecyclerView.Adapter adapter = new AttachmentAdapter(account, fullCard.getId(), attachments); + binding.viewPager.setAdapter(adapter); + if (currentAttachment != 0L) { + for (int i = 0; i < attachments.size(); i++) { + if (attachments.get(i).getLocalId() == currentAttachment) { + binding.viewPager.setCurrentItem(i, false); + break; } - } else { - DeckLog.logError(new IllegalStateException("No " + BUNDLE_KEY_CURRENT_ATTACHMENT_LOCAL_ID + " was provided. Falling back to displaying first image.")); - Glide.with(this) - .load(AttachmentUtil.getUrl(account.getUrl(), fullCard.getId(), attachments.get(0).getId())) - .into(binding.image); - binding.toolbar.setTitle(attachments.get(0).getBasename()); } } + // TODO + // https://android-developers.googleblog.com/2018/02/continuous-shared-element-transitions.html?m=1 + // https://github.com/android/animation-samples/blob/master/GridToPager/app/src/main/java/com/google/samples/gridtopager/fragment/ImagePagerFragment.java +// setEnterSharedElementCallback(new SharedElementCallback() { +// @Override +// public void onMapSharedElements(List<String> names, Map<String, View> sharedElements) { +// View view = binding.viewPager.getRootView(); +// if (view == null) { +// return; +// } +// // Map the first shared element name to the child ImageView. +// sharedElements.put(names.get(0), view.findViewById(R.id.image)); +// Log.v("SHARED", "names" + names); +// } +// }); })); } |