Allow use of the in-app emoji picker when using system emoji.

This commit is contained in:
Greyson Parrelli
2024-07-19 12:24:12 -04:00
parent 330debcf37
commit e17cf37799
6 changed files with 10 additions and 33 deletions

View File

@@ -210,18 +210,12 @@ public class ComposeText extends EmojiEditText {
}
public void setMessageSendType(MessageSendType messageSendType) {
final boolean useSystemEmoji = SignalStore.settings().isPreferSystemEmoji();
int imeOptions = (getImeOptions() & ~EditorInfo.IME_MASK_ACTION) | EditorInfo.IME_ACTION_SEND;
int inputType = getInputType();
if (isLandscape()) setImeActionLabel(getContext().getString(messageSendType.getComposeHintRes()), EditorInfo.IME_ACTION_SEND);
else setImeActionLabel(null, 0);
if (useSystemEmoji) {
inputType = (inputType & ~InputType.TYPE_MASK_VARIATION) | InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE;
}
setImeOptions(imeOptions);
setHint(getContext().getString(messageSendType.getComposeHintRes()));
setInputType(inputType);

View File

@@ -174,13 +174,8 @@ public class InputPanel extends ConstraintLayout
this.recordLockCancel.setOnClickListener(v -> microphoneRecorderView.cancelAction(true));
if (SignalStore.settings().isPreferSystemEmoji()) {
mediaKeyboard.setVisibility(View.GONE);
emojiVisible = false;
} else {
mediaKeyboard.setVisibility(View.VISIBLE);
emojiVisible = true;
}
mediaKeyboard.setVisibility(View.VISIBLE);
emojiVisible = true;
quoteDismiss.setOnClickListener(v -> clearQuote());

View File

@@ -1698,14 +1698,13 @@ class ConversationFragment :
}
private fun initializeMediaKeyboard() {
val isSystemEmojiPreferred = SignalStore.settings.isPreferSystemEmoji
val keyboardMode: TextSecurePreferences.MediaKeyboardMode = TextSecurePreferences.getMediaKeyboardMode(requireContext())
val stickerIntro: Boolean = !TextSecurePreferences.hasSeenStickerIntroTooltip(requireContext())
inputPanel.showMediaKeyboardToggle(true)
val keyboardPage = when (keyboardMode) {
TextSecurePreferences.MediaKeyboardMode.EMOJI -> if (isSystemEmojiPreferred) KeyboardPage.STICKER else KeyboardPage.EMOJI
TextSecurePreferences.MediaKeyboardMode.EMOJI -> KeyboardPage.EMOJI
TextSecurePreferences.MediaKeyboardMode.STICKER -> KeyboardPage.STICKER
TextSecurePreferences.MediaKeyboardMode.GIF -> if (RemoteConfig.gifSearchAvailable) KeyboardPage.GIF else KeyboardPage.STICKER
}

View File

@@ -4,7 +4,6 @@ import androidx.annotation.MainThread
import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import org.signal.core.util.ThreadUtil
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.stickers.StickerSearchRepository
import org.thoughtcrime.securesms.util.DefaultValueLiveData
import org.thoughtcrime.securesms.util.RemoteConfig
@@ -15,10 +14,7 @@ class KeyboardPagerViewModel : ViewModel() {
private val pages: DefaultValueLiveData<Set<KeyboardPage>>
init {
val startingPages: MutableSet<KeyboardPage> = KeyboardPage.values().toMutableSet()
if (SignalStore.settings.isPreferSystemEmoji) {
startingPages.remove(KeyboardPage.EMOJI)
}
val startingPages: MutableSet<KeyboardPage> = KeyboardPage.entries.toMutableSet()
if (!RemoteConfig.gifSearchAvailable) {
startingPages.remove(KeyboardPage.GIF)

View File

@@ -31,7 +31,6 @@ import org.thoughtcrime.securesms.conversation.ui.mentions.MentionsPickerViewMod
import org.thoughtcrime.securesms.databinding.V2MediaAddMessageDialogFragmentBinding
import org.thoughtcrime.securesms.keyboard.KeyboardPage
import org.thoughtcrime.securesms.keyboard.KeyboardPagerViewModel
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.mediasend.v2.HudCommand
import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionState
import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionViewModel
@@ -93,13 +92,9 @@ class AddMessageDialogFragment : KeyboardEntryDialogFragment(R.layout.v2_media_a
binding.content.addAMessageInput.setText(requireArguments().getCharSequence(ARG_INITIAL_TEXT))
if (SignalStore.settings.isPreferSystemEmoji) {
binding.content.emojiToggle.visible = false
} else {
binding.content.emojiToggle.setOnClickListener { onEmojiToggleClicked() }
if (requireArguments().getBoolean(ARG_INITIAL_EMOJI_TOGGLE) && view is KeyboardAwareLinearLayout) {
view.addOnKeyboardShownListener(EmojiLaunchListener(view))
}
binding.content.emojiToggle.setOnClickListener { onEmojiToggleClicked() }
if (requireArguments().getBoolean(ARG_INITIAL_EMOJI_TOGGLE) && view is KeyboardAwareLinearLayout) {
view.addOnKeyboardShownListener(EmojiLaunchListener(view))
}
binding.hud.setOnClickListener { dismissAllowingStateLoss() }

View File

@@ -280,10 +280,8 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment), Schedul
sharedViewModel.incrementViewOnceState()
}
if (!SignalStore.settings.isPreferSystemEmoji) {
emojiButton.setOnClickListener {
AddMessageDialogFragment.show(parentFragmentManager, sharedViewModel.state.value?.message, true)
}
emojiButton.setOnClickListener {
AddMessageDialogFragment.show(parentFragmentManager, sharedViewModel.state.value?.message, true)
}
addMessageButton.setOnClickListener {
@@ -669,7 +667,7 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment), Schedul
}
private fun computeEmojiButtonAnimators(state: MediaSelectionState): List<Animator> {
return if (state.isTouchEnabled && !SignalStore.settings.isPreferSystemEmoji && state.viewOnceToggleState != MediaSelectionState.ViewOnceToggleState.ONCE) {
return if (state.isTouchEnabled && state.viewOnceToggleState != MediaSelectionState.ViewOnceToggleState.ONCE) {
listOf(MediaReviewAnimatorController.getFadeInAnimator(emojiButton))
} else {
listOf(MediaReviewAnimatorController.getFadeOutAnimator(emojiButton))