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