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