Do not allow forwarding of unsupported content to stories.

fork-5.53.8
Alex Hart 2022-03-02 13:58:38 -04:00
rodzic 155bdf6164
commit 34bbb98c96
2 zmienionych plików z 18 dodań i 8 usunięć

Wyświetl plik

@ -269,6 +269,7 @@ class MultiselectForwardFragment :
return ContactSearchConfiguration.build { return ContactSearchConfiguration.build {
query = contactSearchState.query query = contactSearchState.query
if (FeatureFlags.stories() && isSelectedMediaValidForStories()) {
addSection( addSection(
ContactSearchConfiguration.Section.Stories( ContactSearchConfiguration.Section.Stories(
groupStories = contactSearchState.groupStories, groupStories = contactSearchState.groupStories,
@ -279,6 +280,7 @@ class MultiselectForwardFragment :
) )
) )
) )
}
if (query.isNullOrEmpty()) { if (query.isNullOrEmpty()) {
addSection( addSection(
@ -309,6 +311,10 @@ class MultiselectForwardFragment :
return Util.isDefaultSmsProvider(requireContext()) && requireArguments().getBoolean(ARG_CAN_SEND_TO_NON_PUSH) return Util.isDefaultSmsProvider(requireContext()) && requireArguments().getBoolean(ARG_CAN_SEND_TO_NON_PUSH)
} }
private fun isSelectedMediaValidForStories(): Boolean {
return getMultiShareArgs().all { it.isValidForStories }
}
override fun onGroupStoryClicked() { override fun onGroupStoryClicked() {
ChooseGroupStoryBottomSheet().show(parentFragmentManager, ChooseGroupStoryBottomSheet.GROUP_STORY) ChooseGroupStoryBottomSheet().show(parentFragmentManager, ChooseGroupStoryBottomSheet.GROUP_STORY)
} }

Wyświetl plik

@ -126,6 +126,10 @@ public final class MultiShareArgs implements Parcelable {
return expiresAt; return expiresAt;
} }
public boolean isValidForStories() {
return !media.isEmpty() && media.stream().allMatch(m -> MediaUtil.isImageOrVideoType(m.getMimeType()) && !MediaUtil.isGif(m.getMimeType()));
}
public @NonNull InterstitialContentType getInterstitialContentType() { public @NonNull InterstitialContentType getInterstitialContentType() {
if (!requiresInterstitial()) { if (!requiresInterstitial()) {
return InterstitialContentType.NONE; return InterstitialContentType.NONE;