diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java index 68c32a7ce..0dcff0286 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java @@ -24,6 +24,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.util.MediaUtil; +import org.thoughtcrime.securesms.util.Stopwatch; import org.thoughtcrime.securesms.util.StorageUtil; import org.thoughtcrime.securesms.util.Util; import org.whispersystems.libsignal.util.guava.Optional; @@ -201,14 +202,20 @@ public class MediaRepository { @WorkerThread private @NonNull List getMediaInBucket(@NonNull Context context, @NonNull String bucketId) { + Stopwatch stopwatch = new Stopwatch("getMediaInBucket"); + List images = getMediaInBucket(context, bucketId, Images.Media.EXTERNAL_CONTENT_URI, true); List videos = getMediaInBucket(context, bucketId, Video.Media.EXTERNAL_CONTENT_URI, false); List media = new ArrayList<>(images.size() + videos.size()); + stopwatch.split("post fetch"); + media.addAll(images); media.addAll(videos); Collections.sort(media, (o1, o2) -> Long.compare(o2.getDate(), o1.getDate())); + stopwatch.split("post sort"); + stopwatch.stop(TAG); return media; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt index cce0e744d..ce36af9af 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt @@ -18,6 +18,7 @@ import org.thoughtcrime.securesms.mediasend.Media import org.thoughtcrime.securesms.mediasend.MediaRepository import org.thoughtcrime.securesms.mediasend.v2.MediaCountIndicatorButton import org.thoughtcrime.securesms.util.MappingAdapter +import org.thoughtcrime.securesms.util.Stopwatch import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.livedata.LiveDataUtil import org.thoughtcrime.securesms.util.visible @@ -115,7 +116,11 @@ class MediaGalleryFragment : Fragment(R.layout.v2_media_gallery_fragment) { viewStateLiveData.observe(viewLifecycleOwner) { state -> bottomBarGroup.visible = state.selectedMedia.isNotEmpty() countButton.setCount(state.selectedMedia.size) + + val stopwatch = Stopwatch("mediaSubmit") selectedAdapter.submitList(state.selectedMedia.map { MediaGallerySelectedItem.Model(it) }) { + stopwatch.split("after-submit") + stopwatch.stop("MediaGalleryFragment") if (state.selectedMedia.isNotEmpty()) { selectedRecycler.smoothScrollToPosition(state.selectedMedia.size - 1) }