From 9e67ded6bda3077b65bcfdef9c9048e022d5547e Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Sat, 30 Jul 2022 11:57:26 +0300 Subject: [PATCH] code imp --- .../ru/vtosters/lite/hooks/MessagesHook.java | 7 ++++--- .../lite/translators/BaseTranslator.java | 15 ++++++++++++++- .../lite/translators/YandexTranslator.java | 4 ++-- smali/res/values-ru/arrays.xml | 9 +++++++++ smali/res/values/arrays.xml | 18 ++++++++++++++++++ smali/res/xml/preferences_messages.xml | 17 +++++++++++++++++ .../engine/models/messages/MsgFromUser.smali | 2 +- 7 files changed, 65 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/hooks/MessagesHook.java b/app/src/main/java/ru/vtosters/lite/hooks/MessagesHook.java index 3d4980418..034678950 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/MessagesHook.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/MessagesHook.java @@ -1,5 +1,7 @@ package ru.vtosters.lite.hooks; +import static ru.vtosters.lite.utils.Preferences.getBoolValue; + import android.text.TextUtils; import ru.vtosters.lite.translators.BaseTranslator; @@ -8,10 +10,9 @@ public class MessagesHook { public static String injectOwnText(String oldText) { var translator = BaseTranslator.getInstance(); - if (!TextUtils.isEmpty(oldText)) + if (!TextUtils.isEmpty(oldText) && getBoolValue("autotranslate", false)) { return translator.translate(oldText); + } return oldText; } - - } diff --git a/app/src/main/java/ru/vtosters/lite/translators/BaseTranslator.java b/app/src/main/java/ru/vtosters/lite/translators/BaseTranslator.java index 80f609873..1dfedee58 100644 --- a/app/src/main/java/ru/vtosters/lite/translators/BaseTranslator.java +++ b/app/src/main/java/ru/vtosters/lite/translators/BaseTranslator.java @@ -1,16 +1,29 @@ package ru.vtosters.lite.translators; +import static ru.vtosters.lite.utils.Preferences.*; + import androidx.annotation.NonNull; +import java.util.Locale; + import ru.vtosters.lite.utils.AndroidUtils; public abstract class BaseTranslator { - private static final int YANDEX_CODE = 0; @NonNull public abstract String translate(String text); + public static Object target(){ + var lang = preferences.getString("lang_target", "system"); + var systemLang = Locale.getDefault().getLanguage(); + + if (lang.isEmpty() || lang.equals(systemLang) || lang.equals("system")) + return systemLang; + + return lang; + } + public static BaseTranslator getInstance() { switch (AndroidUtils.getPreferences().getInt("translator", 0)) { case YANDEX_CODE: diff --git a/app/src/main/java/ru/vtosters/lite/translators/YandexTranslator.java b/app/src/main/java/ru/vtosters/lite/translators/YandexTranslator.java index 467684771..f639d6b09 100644 --- a/app/src/main/java/ru/vtosters/lite/translators/YandexTranslator.java +++ b/app/src/main/java/ru/vtosters/lite/translators/YandexTranslator.java @@ -23,7 +23,7 @@ public class YandexTranslator extends BaseTranslator { private static final OkHttpClient client = new OkHttpClient(); private static YandexTranslator instance; - private static String uuid = UUID.randomUUID().toString().replace("-", ""); + private static final String uuid = UUID.randomUUID().toString().replace("-", ""); public static YandexTranslator getInstance() { if (instance == null) @@ -37,7 +37,7 @@ public class YandexTranslator extends BaseTranslator { var request = new Request.a() .b("https://translate.yandex.net/api/v1/tr.json/translate?&srv=android&id=" + uuid + "-0-0") .a(RequestBody.a(MediaType.a("application/x-www-form-urlencoded"), - "lang=" + Locale.getDefault().getLanguage() + "&text=" + URLEncoder.encode(text, "UTF-8"))) + "lang=" + target() + "&text=" + URLEncoder.encode(text, "UTF-8"))) .a(); var payload = client.a(request).execute().a().g(); var json = new JSONObject(payload); diff --git a/smali/res/values-ru/arrays.xml b/smali/res/values-ru/arrays.xml index 5d7270814..2e41b1207 100644 --- a/smali/res/values-ru/arrays.xml +++ b/smali/res/values-ru/arrays.xml @@ -600,6 +600,15 @@ Сторонний HTTPS Сторонний SOCKS + + Системный + Русский + Английский + Украинский + Немецкий + Французский + Казахский + По умолчанию 40 сообщений diff --git a/smali/res/values/arrays.xml b/smali/res/values/arrays.xml index 65b92f703..19e3bde63 100644 --- a/smali/res/values/arrays.xml +++ b/smali/res/values/arrays.xml @@ -756,6 +756,24 @@ https socks + + System + Russian + English + Ukrainian + German + French + Kazakh + + + system + ru + en + uk + de + fr + kk + Default 40 messages diff --git a/smali/res/xml/preferences_messages.xml b/smali/res/xml/preferences_messages.xml index e76ffa484..a5413c5ec 100644 --- a/smali/res/xml/preferences_messages.xml +++ b/smali/res/xml/preferences_messages.xml @@ -26,6 +26,23 @@ android:key="vkme_notifs" android:title="@string/vkme_notifs" /> + + + + + injectOwnText(Ljava/lang/String;)Ljava/lang/String; + invoke-static {p1}, Lru/vtosters/lite/hooks/MessagesHook;->injectOwnText(Ljava/lang/String;)Ljava/lang/String; move-result-object p1