code imp
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -600,6 +600,15 @@
|
||||
<item>Сторонний HTTPS</item>
|
||||
<item>Сторонний SOCKS</item>
|
||||
</string-array>
|
||||
<string-array name="targetlang_value">
|
||||
<item>Системный</item>
|
||||
<item>Русский</item>
|
||||
<item>Английский</item>
|
||||
<item>Украинский</item>
|
||||
<item>Немецкий</item>
|
||||
<item>Французский</item>
|
||||
<item>Казахский</item>
|
||||
</string-array>
|
||||
<string-array name="msgcount_value">
|
||||
<item>По умолчанию</item>
|
||||
<item>40 сообщений</item>
|
||||
|
||||
@@ -756,6 +756,24 @@
|
||||
<item>https</item>
|
||||
<item>socks</item>
|
||||
</string-array>
|
||||
<string-array name="targetlang_value">
|
||||
<item>System</item>
|
||||
<item>Russian</item>
|
||||
<item>English</item>
|
||||
<item>Ukrainian</item>
|
||||
<item>German</item>
|
||||
<item>French</item>
|
||||
<item>Kazakh</item>
|
||||
</string-array>
|
||||
<string-array name="targetlang">
|
||||
<item>system</item>
|
||||
<item>ru</item>
|
||||
<item>en</item>
|
||||
<item>uk</item>
|
||||
<item>de</item>
|
||||
<item>fr</item>
|
||||
<item>kk</item>
|
||||
</string-array>
|
||||
<string-array name="msgcount_value">
|
||||
<item>Default</item>
|
||||
<item>40 messages</item>
|
||||
|
||||
@@ -26,6 +26,23 @@
|
||||
android:key="vkme_notifs"
|
||||
android:title="@string/vkme_notifs" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="Переводчик">
|
||||
<com.vtosters.lite.ui.SummaryListPreference
|
||||
android:defaultValue="system"
|
||||
android:dialogTitle="Выберите язык"
|
||||
android:entries="@array/targetlang_value"
|
||||
android:entryValues="@array/targetlang"
|
||||
android:key="lang_target"
|
||||
android:title="Язык переводчика" />
|
||||
<Preference
|
||||
android:key="lang_service"
|
||||
android:title="Сервис переводов" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="autotranslate"
|
||||
android:summary="Автоматически переводить ваши сообщения"
|
||||
android:title="Автоматический перевод" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="@string/interfaceemoji">
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||
android:defaultValue="false"
|
||||
|
||||
@@ -1493,7 +1493,7 @@
|
||||
.locals 0
|
||||
|
||||
.line 1
|
||||
invoke-static/range {p1 .. p1}, Lru/vtosters/lite/hooks/MessagesHook;->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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user