mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-08-06 05:14:50 +01:00
Rename MediaPreviewFragment to drop version suffix.
This commit is contained in:
committed by
Alex Hart
parent
c973c8ac91
commit
f0f615fef7
@@ -359,7 +359,7 @@
|
||||
errorLine1=" zoomingImageView.setImageUri(requestManager, uri, contentType, () -> events.onMediaReady());"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/java/org/thoughtcrime/securesms/mediapreview/ImageMediaPreviewFragment.java"
|
||||
file="src/main/java/org/thoughtcrime/securesms/mediapreview/ImageMediaPreviewPageFragment.java"
|
||||
line="53"
|
||||
column="22"/>
|
||||
</issue>
|
||||
@@ -403,7 +403,7 @@
|
||||
errorLine1=" bindToolbar(args.fromRecipientId, args.threadRecipientId, args.outgoing, args.showThread, args.date, args.messageId)"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt"
|
||||
file="src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewFragment.kt"
|
||||
line="126"
|
||||
column="5"/>
|
||||
</issue>
|
||||
@@ -414,7 +414,7 @@
|
||||
errorLine1=" bindTextViews(currentItem, currentState.showThread, currentState.messageBodies)"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt"
|
||||
file="src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewFragment.kt"
|
||||
line="254"
|
||||
column="5"/>
|
||||
</issue>
|
||||
@@ -425,7 +425,7 @@
|
||||
errorLine1=" bindTextViews(currentItem, currentState.showThread, currentState.messageBodies)"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt"
|
||||
file="src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewFragment.kt"
|
||||
line="279"
|
||||
column="5"/>
|
||||
</issue>
|
||||
|
||||
@@ -653,7 +653,7 @@
|
||||
android:windowSoftInputMode="stateHidden" />
|
||||
|
||||
<activity
|
||||
android:name=".mediapreview.MediaPreviewV2Activity"
|
||||
android:name=".mediapreview.MediaPreviewActivity"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
android:exported="false"
|
||||
android:label="@string/AndroidManifest__media_preview"
|
||||
|
||||
@@ -128,7 +128,7 @@ import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaIntentFactory;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewCache;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewV2Fragment;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewFragment;
|
||||
import org.thoughtcrime.securesms.mms.ImageSlide;
|
||||
import org.thoughtcrime.securesms.mms.PartAuthority;
|
||||
import org.thoughtcrime.securesms.mms.Slide;
|
||||
@@ -2956,7 +2956,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
|
||||
performClick();
|
||||
} else if (!canPlayContent && mediaItem != null && eventListener != null) {
|
||||
eventListener.onPlayInlineContent(conversationMessage);
|
||||
} else if (MediaPreviewV2Fragment.isContentTypeSupported(slide.getContentType()) && slide.getDisplayUri() != null) {
|
||||
} else if (MediaPreviewFragment.isContentTypeSupported(slide.getContentType()) && slide.getDisplayUri() != null) {
|
||||
AttachmentDownloadJob.downloadAttachmentIfNeeded((DatabaseAttachment) slide.asAttachment());
|
||||
launchMediaPreview(v, slide);
|
||||
} else if (slide.getUri() != null) {
|
||||
|
||||
+3
-3
@@ -303,7 +303,7 @@ import org.thoughtcrime.securesms.main.MainNavigationViewModel
|
||||
import org.thoughtcrime.securesms.main.MainSnackbarHostKey
|
||||
import org.thoughtcrime.securesms.mediaoverview.MediaOverviewActivity
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaIntentFactory
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewV2Activity
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewActivity
|
||||
import org.thoughtcrime.securesms.mediasend.MediaSendActivityResult
|
||||
import org.thoughtcrime.securesms.messagerequests.MessageRequestRepository
|
||||
import org.thoughtcrime.securesms.mms.AttachmentManager
|
||||
@@ -3983,9 +3983,9 @@ class ConversationFragment :
|
||||
|
||||
container.hideAll(composeText)
|
||||
|
||||
sharedElement.transitionName = MediaPreviewV2Activity.SHARED_ELEMENT_TRANSITION_NAME
|
||||
sharedElement.transitionName = MediaPreviewActivity.SHARED_ELEMENT_TRANSITION_NAME
|
||||
requireActivity().setExitSharedElementCallback(MaterialContainerTransformSharedElementCallback())
|
||||
val options = ActivityOptions.makeSceneTransitionAnimation(requireActivity(), sharedElement, MediaPreviewV2Activity.SHARED_ELEMENT_TRANSITION_NAME)
|
||||
val options = ActivityOptions.makeSceneTransitionAnimation(requireActivity(), sharedElement, MediaPreviewActivity.SHARED_ELEMENT_TRANSITION_NAME)
|
||||
requireActivity().startActivity(MediaIntentFactory.create(requireActivity(), args), options.toBundle())
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -50,7 +50,7 @@ import org.thoughtcrime.securesms.database.loaders.GroupedThreadMediaLoader;
|
||||
import org.thoughtcrime.securesms.database.loaders.MediaLoader;
|
||||
import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaIntentFactory;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewV2Activity;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewActivity;
|
||||
import org.thoughtcrime.securesms.mms.PartAuthority;
|
||||
import org.signal.core.ui.permissions.Permissions;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
@@ -377,8 +377,8 @@ public final class MediaOverviewPageFragment extends LoggingFragment
|
||||
DimensionUnit.DP.toDp(12)
|
||||
),
|
||||
false);
|
||||
view.setTransitionName(MediaPreviewV2Activity.SHARED_ELEMENT_TRANSITION_NAME);
|
||||
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(requireActivity(), view, MediaPreviewV2Activity.SHARED_ELEMENT_TRANSITION_NAME);
|
||||
view.setTransitionName(MediaPreviewActivity.SHARED_ELEMENT_TRANSITION_NAME);
|
||||
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(requireActivity(), view, MediaPreviewActivity.SHARED_ELEMENT_TRANSITION_NAME);
|
||||
context.startActivity(MediaIntentFactory.create(context, args), options.toBundle());
|
||||
} else {
|
||||
if (!MediaUtil.isAudio(attachment)) {
|
||||
|
||||
+5
-5
@@ -17,12 +17,12 @@ import org.thoughtcrime.securesms.components.ZoomingImageView;
|
||||
import org.signal.core.util.concurrent.LifecycleDisposable;
|
||||
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||
|
||||
public final class ImageMediaPreviewFragment extends MediaPreviewFragment {
|
||||
public final class ImageMediaPreviewPageFragment extends MediaPreviewPageFragment {
|
||||
|
||||
private MediaPreviewPlayerControlView bottomBarControlView;
|
||||
|
||||
private MediaPreviewV2ViewModel viewModel;
|
||||
private LifecycleDisposable lifecycleDisposable;
|
||||
|
||||
private MediaPreviewViewModel viewModel;
|
||||
private LifecycleDisposable lifecycleDisposable;
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
@@ -40,7 +40,7 @@ public final class ImageMediaPreviewFragment extends MediaPreviewFragment {
|
||||
String contentType = arguments.getString(DATA_CONTENT_TYPE);
|
||||
ZoomingImageView zoomingImageView = view.findViewById(R.id.zooming_image_view);
|
||||
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(MediaPreviewV2ViewModel.class);
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(MediaPreviewViewModel.class);
|
||||
lifecycleDisposable = new LifecycleDisposable();
|
||||
|
||||
lifecycleDisposable.bindTo(getViewLifecycleOwner());
|
||||
@@ -64,7 +64,7 @@ object MediaIntentFactory {
|
||||
|
||||
@JvmStatic
|
||||
fun create(context: Context, args: MediaPreviewArgs): Intent {
|
||||
return Intent(context, MediaPreviewV2Activity::class.java).putExtra(ARGS_KEY, args)
|
||||
return Intent(context, MediaPreviewActivity::class.java).putExtra(ARGS_KEY, args)
|
||||
}
|
||||
|
||||
fun intentFromMediaRecord(
|
||||
|
||||
+7
-7
@@ -21,11 +21,11 @@ import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaController
|
||||
import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaControllerOwner
|
||||
import org.thoughtcrime.securesms.util.WindowUtil
|
||||
|
||||
class MediaPreviewV2Activity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner {
|
||||
class MediaPreviewActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner {
|
||||
|
||||
override lateinit var voiceNoteMediaController: VoiceNoteMediaController
|
||||
|
||||
private val viewModel: MediaPreviewV2ViewModel by viewModels()
|
||||
private val viewModel: MediaPreviewViewModel by viewModels()
|
||||
private val lifecycleDisposable = LifecycleDisposable()
|
||||
private val args by lazy {
|
||||
MediaIntentFactory.requireArguments(intent.extras!!)
|
||||
@@ -85,7 +85,7 @@ class MediaPreviewV2Activity : PassphraseRequiredActivity(), VoiceNoteMediaContr
|
||||
|
||||
super.onCreate(savedInstanceState, ready)
|
||||
setTheme(R.style.TextSecure_MediaPreview)
|
||||
setContentView(R.layout.activity_mediapreview_v2)
|
||||
setContentView(R.layout.activity_media_preview)
|
||||
|
||||
transitionImageView = findViewById(R.id.transition_image_view)
|
||||
val cacheDrawable = MediaPreviewCache.drawable?.let { RecycledBitmapGuardDrawable(it) }
|
||||
@@ -111,7 +111,7 @@ class MediaPreviewV2Activity : PassphraseRequiredActivity(), VoiceNoteMediaContr
|
||||
lifecycleDisposable += viewModel.state.map {
|
||||
it.isInSharedAnimation to it.loadState
|
||||
}.distinctUntilChanged().subscribe { (isInSharedAnimation, loadState) ->
|
||||
if (loadState == MediaPreviewV2State.LoadState.MEDIA_READY) {
|
||||
if (loadState == MediaPreviewState.LoadState.MEDIA_READY) {
|
||||
hasMediaBeenReady = true
|
||||
}
|
||||
if (!isInSharedAnimation && hasMediaBeenReady) {
|
||||
@@ -134,10 +134,10 @@ class MediaPreviewV2Activity : PassphraseRequiredActivity(), VoiceNoteMediaContr
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
val bundle = Bundle()
|
||||
bundle.putParcelable(MediaPreviewV2Fragment.ARGS_KEY, args)
|
||||
bundle.putParcelable(MediaPreviewFragment.ARGS_KEY, args)
|
||||
supportFragmentManager.commit {
|
||||
setReorderingAllowed(true)
|
||||
add(R.id.fragment_container_view, MediaPreviewV2Fragment::class.java, bundle, FRAGMENT_TAG)
|
||||
add(R.id.fragment_container_view, MediaPreviewFragment::class.java, bundle, FRAGMENT_TAG)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -156,7 +156,7 @@ class MediaPreviewV2Activity : PassphraseRequiredActivity(), VoiceNoteMediaContr
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val FRAGMENT_TAG = "media_preview_fragment_v2"
|
||||
private const val FRAGMENT_TAG = "media_preview_fragment"
|
||||
const val SHARED_ELEMENT_TRANSITION_NAME = "thumb"
|
||||
}
|
||||
}
|
||||
+9
-9
@@ -11,8 +11,8 @@ import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob
|
||||
import org.thoughtcrime.securesms.util.MediaUtil
|
||||
import org.thoughtcrime.securesms.util.adapter.StableIdGenerator
|
||||
|
||||
class MediaPreviewV2Adapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
|
||||
private val TAG = Log.tag(MediaPreviewV2Adapter::class.java)
|
||||
class MediaPreviewAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
|
||||
private val TAG = Log.tag(MediaPreviewAdapter::class.java)
|
||||
private var items: List<Attachment> = listOf()
|
||||
private val stableIdGenerator = StableIdGenerator<Attachment>()
|
||||
private val currentIdSet: HashSet<Long> = HashSet()
|
||||
@@ -30,16 +30,16 @@ class MediaPreviewV2Adapter(fragment: Fragment) : FragmentStateAdapter(fragment)
|
||||
|
||||
val contentType = attachment.contentType
|
||||
val args = bundleOf(
|
||||
MediaPreviewFragment.DATA_URI to attachment.displayUri,
|
||||
MediaPreviewFragment.DATA_CONTENT_TYPE to contentType,
|
||||
MediaPreviewFragment.DATA_SIZE to attachment.size,
|
||||
MediaPreviewFragment.AUTO_PLAY to attachment.videoGif,
|
||||
MediaPreviewFragment.VIDEO_GIF to attachment.videoGif
|
||||
MediaPreviewPageFragment.DATA_URI to attachment.displayUri,
|
||||
MediaPreviewPageFragment.DATA_CONTENT_TYPE to contentType,
|
||||
MediaPreviewPageFragment.DATA_SIZE to attachment.size,
|
||||
MediaPreviewPageFragment.AUTO_PLAY to attachment.videoGif,
|
||||
MediaPreviewPageFragment.VIDEO_GIF to attachment.videoGif
|
||||
)
|
||||
val fragment = if (MediaUtil.isVideo(contentType)) {
|
||||
VideoMediaPreviewFragment()
|
||||
VideoMediaPreviewPageFragment()
|
||||
} else if (MediaUtil.isImageType(contentType)) {
|
||||
ImageMediaPreviewFragment()
|
||||
ImageMediaPreviewPageFragment()
|
||||
} else {
|
||||
throw AssertionError("Unexpected media type: $contentType")
|
||||
}
|
||||
+23
-23
@@ -62,7 +62,7 @@ import org.thoughtcrime.securesms.database.DatabaseObserver
|
||||
import org.thoughtcrime.securesms.database.MediaTable
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.database.model.MessageRecord
|
||||
import org.thoughtcrime.securesms.databinding.FragmentMediaPreviewV2Binding
|
||||
import org.thoughtcrime.securesms.databinding.FragmentMediaPreviewBinding
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.mediapreview.caption.ExpandingCaptionView
|
||||
@@ -88,19 +88,19 @@ import java.util.concurrent.TimeUnit
|
||||
import kotlin.math.roundToInt
|
||||
import org.signal.core.ui.R as CoreUiR
|
||||
|
||||
class MediaPreviewV2Fragment :
|
||||
LoggingFragment(R.layout.fragment_media_preview_v2),
|
||||
MediaPreviewFragment.Events {
|
||||
class MediaPreviewFragment :
|
||||
LoggingFragment(R.layout.fragment_media_preview),
|
||||
MediaPreviewPageFragment.Events {
|
||||
|
||||
private val lifecycleDisposable = LifecycleDisposable()
|
||||
private val binding by ViewBinderDelegate(FragmentMediaPreviewV2Binding::bind)
|
||||
private val viewModel: MediaPreviewV2ViewModel by viewModels(ownerProducer = {
|
||||
private val binding by ViewBinderDelegate(FragmentMediaPreviewBinding::bind)
|
||||
private val viewModel: MediaPreviewViewModel by viewModels(ownerProducer = {
|
||||
requireActivity()
|
||||
})
|
||||
private val debouncer = Debouncer(2, TimeUnit.SECONDS)
|
||||
private val args: MediaIntentFactory.MediaPreviewArgs by lazy { MediaIntentFactory.requireArguments(requireArguments()) }
|
||||
|
||||
private lateinit var pagerAdapter: MediaPreviewV2Adapter
|
||||
private lateinit var pagerAdapter: MediaPreviewAdapter
|
||||
private lateinit var albumRailAdapter: MediaRailAdapter
|
||||
private lateinit var fullscreenHelper: FullscreenHelper
|
||||
|
||||
@@ -154,7 +154,7 @@ class MediaPreviewV2Fragment :
|
||||
|
||||
private fun initializeViewModel(args: MediaIntentFactory.MediaPreviewArgs) {
|
||||
if (!MediaUtil.isImageType(args.initialMediaType) && !MediaUtil.isVideoType(args.initialMediaType)) {
|
||||
Log.w(TAG, "Unsupported media type sent to MediaPreviewV2Fragment, finishing.")
|
||||
Log.w(TAG, "Unsupported media type sent to MediaPreviewFragment, finishing.")
|
||||
Snackbar.make(binding.root, R.string.MediaPreviewActivity_unssuported_media_type, Snackbar.LENGTH_LONG)
|
||||
.setAction(R.string.MediaPreviewActivity_dismiss_due_to_error) {
|
||||
activity?.finish()
|
||||
@@ -186,7 +186,7 @@ class MediaPreviewV2Fragment :
|
||||
private fun initializeViewPager() {
|
||||
binding.mediaPager.offscreenPageLimit = OFFSCREEN_PAGE_LIMIT_DEFAULT
|
||||
binding.mediaPager.setPageTransformer(MarginPageTransformer(ViewUtil.dpToPx(24)))
|
||||
pagerAdapter = MediaPreviewV2Adapter(this)
|
||||
pagerAdapter = MediaPreviewAdapter(this)
|
||||
binding.mediaPager.adapter = pagerAdapter
|
||||
binding.mediaPager.registerOnPageChangeCallback(object : OnPageChangeCallback() {
|
||||
override fun onPageSelected(position: Int) {
|
||||
@@ -204,7 +204,7 @@ class MediaPreviewV2Fragment :
|
||||
layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
|
||||
addItemDecoration(CenterDecoration(0))
|
||||
albumRailAdapter = MediaRailAdapter(
|
||||
Glide.with(this@MediaPreviewV2Fragment),
|
||||
Glide.with(this@MediaPreviewFragment),
|
||||
{ media -> jumpViewPagerToMedia(media) },
|
||||
object : ImageLoadingListener() {
|
||||
override fun onAllRequestsFinished() {
|
||||
@@ -224,19 +224,19 @@ class MediaPreviewV2Fragment :
|
||||
fullscreenHelper.showAndHideWithSystemUI(requireActivity().window, binding.toolbarLayout, binding.mediaPreviewDetailsContainer)
|
||||
}
|
||||
|
||||
private fun bindCurrentState(currentState: MediaPreviewV2State) {
|
||||
private fun bindCurrentState(currentState: MediaPreviewState) {
|
||||
if (currentState.position < 0 && currentState.mediaRecords.isEmpty()) {
|
||||
onMediaNotAvailable()
|
||||
return
|
||||
}
|
||||
when (currentState.loadState) {
|
||||
MediaPreviewV2State.LoadState.DATA_LOADED -> bindDataLoadedState(currentState)
|
||||
MediaPreviewV2State.LoadState.MEDIA_READY -> bindMediaReadyState(currentState)
|
||||
MediaPreviewState.LoadState.DATA_LOADED -> bindDataLoadedState(currentState)
|
||||
MediaPreviewState.LoadState.MEDIA_READY -> bindMediaReadyState(currentState)
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
|
||||
private fun bindDataLoadedState(currentState: MediaPreviewV2State) {
|
||||
private fun bindDataLoadedState(currentState: MediaPreviewState) {
|
||||
val currentPosition = currentState.position
|
||||
|
||||
val backingItems = currentState.mediaRecords.mapNotNull { it.attachment }
|
||||
@@ -260,7 +260,7 @@ class MediaPreviewV2Fragment :
|
||||
* This is not available until after a page has been chosen by the ViewPager, and we receive the
|
||||
* {@link OnPageChangeCallback}.
|
||||
*/
|
||||
private fun bindMediaReadyState(currentState: MediaPreviewV2State) {
|
||||
private fun bindMediaReadyState(currentState: MediaPreviewState) {
|
||||
val currentPosition: Int = currentState.position
|
||||
if (currentState.mediaRecords.isEmpty() || currentPosition < 0) {
|
||||
onMediaNotAvailable()
|
||||
@@ -272,7 +272,7 @@ class MediaPreviewV2Fragment :
|
||||
|
||||
childFragmentManager.fragments.forEach { fragment ->
|
||||
if (fragment.tag != currentItemTag) {
|
||||
(fragment as? MediaPreviewFragment)?.pause()
|
||||
(fragment as? MediaPreviewPageFragment)?.pause()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -304,7 +304,7 @@ class MediaPreviewV2Fragment :
|
||||
|
||||
/**
|
||||
* The body passed in via arguments for the initially-opened message. Used as a fallback until the background
|
||||
* body resolution populates [MediaPreviewV2State.messageBodies], so the caption never blanks out after the
|
||||
* body resolution populates [MediaPreviewState.messageBodies], so the caption never blanks out after the
|
||||
* instant render.
|
||||
*/
|
||||
private fun initialBodyForMessage(messageId: Long?): SpannableString? {
|
||||
@@ -394,7 +394,7 @@ class MediaPreviewV2Fragment :
|
||||
crossfadeViewIn(binding.mediaPreviewDetailsContainer)
|
||||
}
|
||||
|
||||
private fun bindMediaPreviewPlaybackControls(currentItem: MediaTable.MediaRecord, currentFragment: MediaPreviewFragment?) {
|
||||
private fun bindMediaPreviewPlaybackControls(currentItem: MediaTable.MediaRecord, currentFragment: MediaPreviewPageFragment?) {
|
||||
val mediaType: MediaPreviewPlayerControlView.MediaMode = if (currentItem.attachment?.videoGif == true) {
|
||||
MediaPreviewPlayerControlView.MediaMode.IMAGE
|
||||
} else {
|
||||
@@ -423,7 +423,7 @@ class MediaPreviewV2Fragment :
|
||||
}
|
||||
|
||||
private fun pauseCurrentMediaIfVideo() {
|
||||
(getMediaPreviewFragmentFromChildFragmentManager(binding.mediaPager.currentItem) as? VideoMediaPreviewFragment)?.pause()
|
||||
(getMediaPreviewFragmentFromChildFragmentManager(binding.mediaPager.currentItem) as? VideoMediaPreviewPageFragment)?.pause()
|
||||
}
|
||||
|
||||
private fun tryBindMediaPreviewPlaybackControls(
|
||||
@@ -505,8 +505,8 @@ class MediaPreviewV2Fragment :
|
||||
}
|
||||
}
|
||||
|
||||
private fun getMediaPreviewFragmentFromChildFragmentManager(currentPosition: Int): MediaPreviewFragment? {
|
||||
return childFragmentManager.findFragmentByTag(pagerAdapter.getFragmentTag(currentPosition)) as? MediaPreviewFragment
|
||||
private fun getMediaPreviewFragmentFromChildFragmentManager(currentPosition: Int): MediaPreviewPageFragment? {
|
||||
return childFragmentManager.findFragmentByTag(pagerAdapter.getFragmentTag(currentPosition)) as? MediaPreviewPageFragment
|
||||
}
|
||||
|
||||
private fun jumpViewPagerToMedia(media: Media) {
|
||||
@@ -669,7 +669,7 @@ class MediaPreviewV2Fragment :
|
||||
)
|
||||
|
||||
lifecycleScope.launch {
|
||||
AttachmentSaver(this@MediaPreviewV2Fragment).saveAttachments(setOf(saveAttachment))
|
||||
AttachmentSaver(this@MediaPreviewFragment).saveAttachments(setOf(saveAttachment))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -779,7 +779,7 @@ class MediaPreviewV2Fragment :
|
||||
private const val EXPANDED_CAPTION_HEIGHT_FALLBACK_DP = 400
|
||||
private const val EXPANDED_CAPTION_HEIGHT_PERCENT: Float = 0.7F
|
||||
|
||||
private val TAG = Log.tag(MediaPreviewV2Fragment::class.java)
|
||||
private val TAG = Log.tag(MediaPreviewFragment::class.java)
|
||||
|
||||
const val ARGS_KEY: String = "args"
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ import org.signal.core.util.concurrent.SimpleTask;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public abstract class MediaPreviewFragment extends Fragment {
|
||||
public abstract class MediaPreviewPageFragment extends Fragment {
|
||||
|
||||
public static final String DATA_URI = "DATA_URI";
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import android.text.SpannableString
|
||||
import org.signal.core.models.media.Media
|
||||
import org.thoughtcrime.securesms.database.MediaTable
|
||||
|
||||
data class MediaPreviewV2State(
|
||||
data class MediaPreviewState(
|
||||
val mediaRecords: List<MediaTable.MediaRecord> = emptyList(),
|
||||
val loadState: LoadState = LoadState.INIT,
|
||||
val position: Int = 0,
|
||||
+10
-10
@@ -35,17 +35,17 @@ import org.thoughtcrime.securesms.notifications.NotificationIds
|
||||
import org.thoughtcrime.securesms.util.RemoteConfig
|
||||
import org.thoughtcrime.securesms.util.rx.RxStore
|
||||
|
||||
class MediaPreviewV2ViewModel : ViewModel() {
|
||||
class MediaPreviewViewModel : ViewModel() {
|
||||
|
||||
companion object {
|
||||
private val TAG = Log.tag(MediaPreviewV2ViewModel::class)
|
||||
private val TAG = Log.tag(MediaPreviewViewModel::class)
|
||||
}
|
||||
|
||||
private val store = RxStore(MediaPreviewV2State())
|
||||
private val store = RxStore(MediaPreviewState())
|
||||
private val disposables = CompositeDisposable()
|
||||
private val repository: MediaPreviewRepository = MediaPreviewRepository()
|
||||
|
||||
val state: Flowable<MediaPreviewV2State> = store.stateFlowable.observeOn(AndroidSchedulers.mainThread())
|
||||
val state: Flowable<MediaPreviewState> = store.stateFlowable.observeOn(AndroidSchedulers.mainThread())
|
||||
val currentPosition: Int
|
||||
get() = store.state.position
|
||||
|
||||
@@ -58,7 +58,7 @@ class MediaPreviewV2ViewModel : ViewModel() {
|
||||
}
|
||||
|
||||
fun fetchAttachments(context: Context, startingAttachmentId: AttachmentId, threadId: Long, sorting: MediaTable.Sorting, forceRefresh: Boolean = false) {
|
||||
if (store.state.loadState == MediaPreviewV2State.LoadState.INIT || forceRefresh) {
|
||||
if (store.state.loadState == MediaPreviewState.LoadState.INIT || forceRefresh) {
|
||||
disposables += repository.getAttachments(context, startingAttachmentId, threadId, sorting).subscribe { result ->
|
||||
store.update { oldState ->
|
||||
val albums = result.records.fold(mutableMapOf()) { acc: MutableMap<Long, MutableList<Media>>, mediaRecord: MediaTable.MediaRecord ->
|
||||
@@ -74,14 +74,14 @@ class MediaPreviewV2ViewModel : ViewModel() {
|
||||
position = result.initialPosition,
|
||||
mediaRecords = result.records,
|
||||
albums = albums,
|
||||
loadState = MediaPreviewV2State.LoadState.DATA_LOADED
|
||||
loadState = MediaPreviewState.LoadState.DATA_LOADED
|
||||
)
|
||||
} else {
|
||||
oldState.copy(
|
||||
position = result.records.size - result.initialPosition - 1,
|
||||
mediaRecords = result.records.reversed(),
|
||||
albums = albums.mapValues { it.value.reversed() },
|
||||
loadState = MediaPreviewV2State.LoadState.DATA_LOADED
|
||||
loadState = MediaPreviewState.LoadState.DATA_LOADED
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -112,7 +112,7 @@ class MediaPreviewV2ViewModel : ViewModel() {
|
||||
}
|
||||
|
||||
fun initialize(showThread: Boolean, allMediaInAlbumRail: Boolean, leftIsRecent: Boolean) {
|
||||
if (store.state.loadState == MediaPreviewV2State.LoadState.INIT) {
|
||||
if (store.state.loadState == MediaPreviewState.LoadState.INIT) {
|
||||
store.update { oldState ->
|
||||
oldState.copy(showThread = showThread, allMediaInAlbumRail = allMediaInAlbumRail, leftIsRecent = leftIsRecent)
|
||||
}
|
||||
@@ -127,7 +127,7 @@ class MediaPreviewV2ViewModel : ViewModel() {
|
||||
|
||||
fun setMediaReady() {
|
||||
store.update { oldState ->
|
||||
oldState.copy(loadState = MediaPreviewV2State.LoadState.MEDIA_READY)
|
||||
oldState.copy(loadState = MediaPreviewState.LoadState.MEDIA_READY)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ class MediaPreviewV2ViewModel : ViewModel() {
|
||||
|
||||
fun onDestroyView() {
|
||||
store.update { oldState ->
|
||||
oldState.copy(loadState = MediaPreviewV2State.LoadState.DATA_LOADED)
|
||||
oldState.copy(loadState = MediaPreviewState.LoadState.DATA_LOADED)
|
||||
}
|
||||
}
|
||||
|
||||
+7
-7
@@ -27,16 +27,16 @@ import org.signal.video.VideoPlayer;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@OptIn(markerClass = UnstableApi.class)
|
||||
public final class VideoMediaPreviewFragment extends MediaPreviewFragment {
|
||||
public final class VideoMediaPreviewPageFragment extends MediaPreviewPageFragment {
|
||||
|
||||
private static final String TAG = Log.tag(VideoMediaPreviewFragment.class);
|
||||
private static final String TAG = Log.tag(VideoMediaPreviewPageFragment.class);
|
||||
|
||||
private static final Long MINIMUM_DURATION_FOR_SKIP_MS = TimeUnit.MILLISECONDS.convert(30, TimeUnit.SECONDS);
|
||||
|
||||
private VideoPlayer videoView;
|
||||
private boolean isVideoGif;
|
||||
private MediaPreviewV2ViewModel viewModel;
|
||||
private LifecycleDisposable lifecycleDisposable;
|
||||
private VideoPlayer videoView;
|
||||
private boolean isVideoGif;
|
||||
private MediaPreviewViewModel viewModel;
|
||||
private LifecycleDisposable lifecycleDisposable;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -61,7 +61,7 @@ public final class VideoMediaPreviewFragment extends MediaPreviewFragment {
|
||||
}
|
||||
|
||||
videoView = itemView.findViewById(R.id.video_player);
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(MediaPreviewV2ViewModel.class);
|
||||
viewModel = new ViewModelProvider(requireActivity()).get(MediaPreviewViewModel.class);
|
||||
lifecycleDisposable = new LifecycleDisposable();
|
||||
|
||||
lifecycleDisposable.add(viewModel.getState().distinctUntilChanged().subscribe(state -> {
|
||||
@@ -64,7 +64,7 @@ import org.thoughtcrime.securesms.giph.ui.GiphyActivity;
|
||||
import org.thoughtcrime.securesms.maps.PlacePickerActivity;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaIntentFactory;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewCache;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewV2Fragment;
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewFragment;
|
||||
import org.thoughtcrime.securesms.mediasend.MediaSendLauncher;
|
||||
import org.thoughtcrime.securesms.payments.CanNotSendPaymentDialog;
|
||||
import org.thoughtcrime.securesms.payments.PaymentsAddressException;
|
||||
@@ -379,7 +379,7 @@ public class AttachmentManager {
|
||||
}
|
||||
|
||||
private void previewImageDraft(final @NonNull Slide slide) {
|
||||
if (MediaPreviewV2Fragment.isContentTypeSupported(slide.getContentType()) && slide.getUri() != null) {
|
||||
if (MediaPreviewFragment.isContentTypeSupported(slide.getContentType()) && slide.getUri() != null) {
|
||||
MediaIntentFactory.MediaPreviewArgs args = new MediaIntentFactory.MediaPreviewArgs(
|
||||
MediaIntentFactory.NOT_IN_A_THREAD,
|
||||
MediaIntentFactory.UNKNOWN_TIMESTAMP,
|
||||
|
||||
+2
-2
@@ -73,7 +73,7 @@ import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectFor
|
||||
import org.thoughtcrime.securesms.database.AttachmentTable
|
||||
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
||||
import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewFragment
|
||||
import org.thoughtcrime.securesms.mediapreview.MediaPreviewPageFragment
|
||||
import org.thoughtcrime.securesms.mediapreview.VideoControlsDelegate
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
@@ -559,7 +559,7 @@ class StoryViewerPageFragment :
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
childFragmentManager.fragments.forEach {
|
||||
if (it is MediaPreviewFragment) {
|
||||
if (it is MediaPreviewPageFragment) {
|
||||
it.cleanUp()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user