This commit is contained in:
gdlbo
2022-07-31 13:34:07 +03:00
parent 24607e1ea5
commit 9e67ded6bd
7 changed files with 65 additions and 7 deletions
@@ -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;
}
}
@@ -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:
@@ -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);