diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index b51103572a2..129b63f3921 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -179,6 +179,7 @@ import org.telegram.messenger.Timer; import org.telegram.messenger.TranslateController; import org.spacegram.SpaceGramConfig; +import org.spacegram.translator.TranslationHelper; import org.telegram.messenger.UserConfig; import org.telegram.messenger.UserObject; import org.telegram.messenger.Utilities; @@ -23872,6 +23873,15 @@ private boolean updateMessagesReplyTranslation(ArrayList messageIds, Me return updated; } + + private boolean tryTranslateMessageInline(MessageObject messageObject, String toLang) { + if (SpaceGramConfig.translateProvider == 0 || SpaceGramConfig.translateStyle != 0 || messageObject == null || messageObject.messageOwner == null || TextUtils.isEmpty(messageObject.messageOwner.message)) { + return false; + } + TranslationHelper.translateMessage(messageObject, toLang, currentAccount, null); + return true; + } + private long lastTranslationCheck; private void checkTranslation(boolean force) { if (System.currentTimeMillis() - lastTranslationCheck > 1000) { @@ -30597,8 +30607,10 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } String toLangValue = fromLang != null && fromLang.equals(toLang) ? toLangDefault : toLang; ArrayList entities = selectedObject != null && selectedObject.messageOwner != null ? selectedObject.messageOwner.entities : null; - TranslateAlert2 alert = TranslateAlert2.showAlert(getParentActivity(), this, currentAccount, inputPeer, messageIdToTranslate[0], selectedObject.summarized, fromLang, toLangValue, finalMessageText, entities, noforwardsOrPaidMedia, onLinkPress, () -> dimBehindView(false)); - alert.setDimBehind(false); + if (!tryTranslateMessageInline(selectedObject, toLangValue)) { + TranslateAlert2 alert = TranslateAlert2.showAlert(getParentActivity(), this, currentAccount, inputPeer, messageIdToTranslate[0], selectedObject.summarized, fromLang, toLangValue, finalMessageText, entities, noforwardsOrPaidMedia, onLinkPress, () -> dimBehindView(false)); + alert.setDimBehind(false); + } closeMenu(false); int hintCount = MessagesController.getNotificationsSettings(currentAccount).getInt("dialog_show_translate_count" + getDialogId(), 5); @@ -30643,8 +30655,10 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } String toLangValue = fromLang[0] != null && fromLang[0].equals(toLang) ? toLangDefault : toLang; ArrayList entities = selectedObject != null && selectedObject.messageOwner != null ? selectedObject.messageOwner.entities : null; - TranslateAlert2 alert = TranslateAlert2.showAlert(getParentActivity(), this, currentAccount, inputPeer, messageIdToTranslate[0], selectedObject.summarized, fromLang[0], toLangValue, finalMessageText, entities, noforwardsOrPaidMedia, onLinkPress, () -> dimBehindView(false)); - alert.setDimBehind(false); + if (!tryTranslateMessageInline(selectedObject, toLangValue)) { + TranslateAlert2 alert = TranslateAlert2.showAlert(getParentActivity(), this, currentAccount, inputPeer, messageIdToTranslate[0], selectedObject.summarized, fromLang[0], toLangValue, finalMessageText, entities, noforwardsOrPaidMedia, onLinkPress, () -> dimBehindView(false)); + alert.setDimBehind(false); + } closeMenu(false); int hintCount = MessagesController.getNotificationsSettings(currentAccount).getInt("dialog_show_translate_count" + getDialogId(), 5); @@ -30664,8 +30678,10 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (selectedObject == null || i >= options.size() || getParentActivity() == null) { return; } - TranslateAlert2 alert = TranslateAlert2.showAlert(getParentActivity(), this, currentAccount, inputPeer, messageIdToTranslate[0], selectedObject.summarized, "und", toLang, finalMessageText, null, noforwardsOrPaidMedia, onLinkPress, () -> dimBehindView(false)); - alert.setDimBehind(false); + if (!tryTranslateMessageInline(selectedObject, toLang)) { + TranslateAlert2 alert = TranslateAlert2.showAlert(getParentActivity(), this, currentAccount, inputPeer, messageIdToTranslate[0], selectedObject.summarized, "und", toLang, finalMessageText, null, noforwardsOrPaidMedia, onLinkPress, () -> dimBehindView(false)); + alert.setDimBehind(false); + } closeMenu(false); int hintCount = MessagesController.getNotificationsSettings(currentAccount).getInt("dialog_show_translate_count" + getDialogId(), 5);