diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java index c3c1f806f..9bcad4343 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java @@ -6316,7 +6316,10 @@ public class MessagesController extends BaseController implements NotificationCe } else if (action == 9) { req.action = new TLRPC.TL_sendMessageUploadAudioAction(); } else if (action == 10) { - req.action = new TLRPC.TL_sendMessageChooseStickerAction(); + if (NekoConfig.disableChoosingSticker) + req.action = new TLRPC.TL_sendMessageTypingAction(); + else + req.action = new TLRPC.TL_sendMessageChooseStickerAction(); } else if (action == 11) { TLRPC.TL_sendMessageEmojiInteractionSeen interactionSeen = new TLRPC.TL_sendMessageEmojiInteractionSeen(); interactionSeen.emoticon = emojicon; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java b/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java index d7ea010f5..427e01024 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/EmojiAnimationsOverlay.java @@ -34,6 +34,8 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Random; +import tw.nekomimi.nekogram.NekoConfig; + public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCenterDelegate { private final int ANIMATION_JSON_VERSION = 1; @@ -149,6 +151,8 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe checkStickerPack(); } } else if (id == NotificationCenter.onEmojiInteractionsReceived) { + if (NekoConfig.disableRemoteEmojiInteractions) + return; long dialogId = (long) args[0]; TLRPC.TL_sendMessageEmojiInteraction action = (TLRPC.TL_sendMessageEmojiInteraction) args[1]; if (dialogId == this.dialogId && supportedEmoji.contains(action.emoticon)) { diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/NekoConfig.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/NekoConfig.java index 506a4146e..cef6397b4 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/NekoConfig.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/NekoConfig.java @@ -152,6 +152,8 @@ public class NekoConfig { public static boolean takeGIFasVideo; public static int maxRecentStickerCount; public static boolean disableSwipeToNext; + public static boolean disableRemoteEmojiInteractions; + public static boolean disableChoosingSticker; public static boolean disableAutoDownloadingWin32Executable; public static boolean disableAutoDownloadingArchive; @@ -326,6 +328,8 @@ public class NekoConfig { takeGIFasVideo = preferences.getBoolean("takeGIFasVideo", false); maxRecentStickerCount = preferences.getInt("maxRecentStickerCount", 20); disableSwipeToNext = preferences.getBoolean("disableSwipeToNext", false); + disableRemoteEmojiInteractions = preferences.getBoolean("disableRemoteEmojiInteractions", false); + disableChoosingSticker = preferences.getBoolean("disableChoosingSticker", false); disableAutoDownloadingWin32Executable = preferences.getBoolean("disableAutoDownloadingWin32Executable", true); disableAutoDownloadingArchive = preferences.getBoolean("disableAutoDownloadingArchive", true); @@ -859,6 +863,14 @@ public class NekoConfig { preferences.edit().putBoolean("disableGroupVoipAudioProcessing", disableGroupVoipAudioProcessing = !disableGroupVoipAudioProcessing).apply(); } + public static void toggleDisableRemoteEmojiInteractions() { + preferences.edit().putBoolean("disableRemoteEmojiInteractions", disableRemoteEmojiInteractions = !disableRemoteEmojiInteractions).apply(); + } + + public static void toggleDisableChoosingSticker() { + preferences.edit().putBoolean("disableChoosingSticker", disableChoosingSticker = !disableChoosingSticker).apply(); + } + private static final String EMOJI_FONT_AOSP = "NotoColorEmoji.ttf"; public static Typeface getSystemEmojiTypeface() { diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoChatSettingsActivity.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoChatSettingsActivity.java index 32d07c1c0..b6ed0397a 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoChatSettingsActivity.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoChatSettingsActivity.java @@ -82,6 +82,8 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati private int takeGIFasVideoRow; private int maxRecentStickerCountRow; private int disableSwipeToNextRow; + private int disableChoosingStickerRow; + private int disableRemoteEmojiInteractionsRow; private int mapPreviewRow; private int messageMenuRow; @@ -310,6 +312,16 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati if (view instanceof TextCheckCell) { ((TextCheckCell) view).setChecked(NekoConfig.disableSwipeToNext); } + } else if (position == disableChoosingStickerRow) { + NekoConfig.toggleDisableChoosingSticker(); + if (view instanceof TextCheckCell) { + ((TextCheckCell) view).setChecked(NekoConfig.disableChoosingSticker); + } + } else if (position == disableRemoteEmojiInteractionsRow) { + NekoConfig.toggleDisableRemoteEmojiInteractions(); + if (view instanceof TextCheckCell) { + ((TextCheckCell) view).setChecked(NekoConfig.disableRemoteEmojiInteractions); + } } else if (position == win32Row) { NekoConfig.toggleDisableAutoDownloadingWin32Executable(); if (view instanceof TextCheckCell) { @@ -362,6 +374,8 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati takeGIFasVideoRow = rowCount++; maxRecentStickerCountRow = rowCount++; disableSwipeToNextRow = rowCount++; + disableChoosingStickerRow = rowCount++; + disableRemoteEmojiInteractionsRow = rowCount++; mapPreviewRow = rowCount++; messageMenuRow = rowCount++; @@ -731,6 +745,10 @@ public class NekoChatSettingsActivity extends BaseFragment implements Notificati textCell.setTextAndCheck(LocaleController.getString("TakeGIFasVideo", R.string.TakeGIFasVideo), NekoConfig.takeGIFasVideo, true); } else if (position == disableSwipeToNextRow) { textCell.setTextAndCheck(LocaleController.getString("disableSwipeToNextChannel", R.string.disableSwipeToNextChannel), NekoConfig.disableSwipeToNext, true); + } else if (position == disableChoosingStickerRow) { + textCell.setTextAndCheck(LocaleController.getString("disableChoosingSticker", R.string.disableChoosingSticker), NekoConfig.disableChoosingSticker, true); + } else if (position == disableRemoteEmojiInteractionsRow) { + textCell.setTextAndCheck(LocaleController.getString("disableRemoteEmojiInteractions", R.string.disableRemoteEmojiInteractions), NekoConfig.disableRemoteEmojiInteractions, true); } else if (position == win32Row) { textCell.setTextAndCheck(LocaleController.getString("Win32ExecutableFiles", R.string.Win32ExecutableFiles), !NekoConfig.disableAutoDownloadingWin32Executable, true); } else if (position == archiveRow) { diff --git a/TMessagesProj/src/main/res/values/strings_neko.xml b/TMessagesProj/src/main/res/values/strings_neko.xml index cd8ca867f..63f92612b 100644 --- a/TMessagesProj/src/main/res/values/strings_neko.xml +++ b/TMessagesProj/src/main/res/values/strings_neko.xml @@ -119,5 +119,7 @@ Group VoIP Audio Bitrate Max recent stickers Disable swipe to next channel + Send typing instead of choosing sticker + Disable emoji interactions from remote \ No newline at end of file