Disable stickers and gifs when editing message.

This commit is contained in:
Clark 2023-06-08 14:10:53 -04:00 committed by Cody Henthorne
parent 02c4bbe816
commit 369ca189d3
2 changed files with 16 additions and 1 deletions

View file

@ -304,6 +304,7 @@ import org.whispersystems.signalservice.api.SignalSessionLock;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Objects; import java.util.Objects;
@ -449,6 +450,7 @@ public class ConversationParentFragment extends Fragment
private GroupCallViewModel groupCallViewModel; private GroupCallViewModel groupCallViewModel;
private VoiceRecorderWakeLock voiceRecorderWakeLock; private VoiceRecorderWakeLock voiceRecorderWakeLock;
private DraftViewModel draftViewModel; private DraftViewModel draftViewModel;
private KeyboardPagerViewModel keyboardPagerViewModel;
private VoiceNoteMediaController voiceNoteMediaController; private VoiceNoteMediaController voiceNoteMediaController;
private VoiceNotePlayerView voiceNotePlayerView; private VoiceNotePlayerView voiceNotePlayerView;
private Material3OnScrollHelper material3OnScrollHelper; private Material3OnScrollHelper material3OnScrollHelper;
@ -472,6 +474,8 @@ public class ConversationParentFragment extends Fragment
private ConversationOptionsMenu.Provider menuProvider; private ConversationOptionsMenu.Provider menuProvider;
private Set<KeyboardPage> previousPages;
public static ConversationParentFragment create(Intent intent) { public static ConversationParentFragment create(Intent intent) {
ConversationParentFragment fragment = new ConversationParentFragment(); ConversationParentFragment fragment = new ConversationParentFragment();
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
@ -2724,7 +2728,7 @@ public class ConversationParentFragment extends Fragment
} }
private void initializeMediaKeyboardProviders() { private void initializeMediaKeyboardProviders() {
KeyboardPagerViewModel keyboardPagerViewModel = new ViewModelProvider(requireActivity()).get(KeyboardPagerViewModel.class); keyboardPagerViewModel = new ViewModelProvider(requireActivity()).get(KeyboardPagerViewModel.class);
switch (TextSecurePreferences.getMediaKeyboardMode(requireContext())) { switch (TextSecurePreferences.getMediaKeyboardMode(requireContext())) {
case EMOJI: case EMOJI:
@ -4234,12 +4238,19 @@ public class ConversationParentFragment extends Fragment
@Override @Override
public void onEnterEditMode() { public void onEnterEditMode() {
updateToggleButtonState(); updateToggleButtonState();
previousPages = keyboardPagerViewModel.pages().getValue();
keyboardPagerViewModel.setOnlyPage(KeyboardPage.EMOJI);
onKeyboardChanged(KeyboardPage.EMOJI);
} }
@Override @Override
public void onExitEditMode() { public void onExitEditMode() {
updateToggleButtonState(); updateToggleButtonState();
draftViewModel.deleteMessageEditDraft(); draftViewModel.deleteMessageEditDraft();
if (previousPages != null) {
keyboardPagerViewModel.setPages(previousPages);
previousPages = null;
}
} }
@Override @Override

View file

@ -37,6 +37,10 @@ class KeyboardPagerViewModel : ViewModel() {
fun page(): LiveData<KeyboardPage> = page fun page(): LiveData<KeyboardPage> = page
fun pages(): LiveData<Set<KeyboardPage>> = pages fun pages(): LiveData<Set<KeyboardPage>> = pages
fun setPages(pageOverride: Set<KeyboardPage>) {
pages.value = pageOverride
}
@MainThread @MainThread
fun setOnlyPage(page: KeyboardPage) { fun setOnlyPage(page: KeyboardPage) {
pages.value = setOf(page) pages.value = setOf(page)