[main] translate all strings
This commit is contained in:
@@ -4,8 +4,10 @@ import static ru.vtosters.lite.net.Request.makeRequest;
|
||||
import static ru.vtosters.lite.proxy.ProxyUtils.getApi;
|
||||
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserId;
|
||||
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getArray;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getResources;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getString;
|
||||
|
||||
import android.util.SparseArray;
|
||||
import android.widget.Toast;
|
||||
@@ -68,7 +70,7 @@ public class MessagesDownloader{
|
||||
}
|
||||
fos.write(format.provideDocumentEnd().getBytes(StandardCharsets.UTF_8));
|
||||
fos.close();
|
||||
Toast.makeText(getGlobalContext(), "Сохранено как " + out.getAbsolutePath(), Toast.LENGTH_SHORT).show();
|
||||
Toast.makeText(getGlobalContext(), getString("saved_as") + " " + out.getAbsolutePath(), Toast.LENGTH_SHORT).show();
|
||||
} catch (IOException | JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -276,7 +278,7 @@ public class MessagesDownloader{
|
||||
"\n" +
|
||||
"";
|
||||
|
||||
return "<html><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><meta charset=\"utf-8\"><title>Экспорт из VTLite</title><style>" + style + "</style></head><body>";
|
||||
return "<html><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><meta charset=\"utf-8\"><title>" + getString("chat_export_title") + "</title><style>" + style + "</style></head><body>";
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -286,7 +288,7 @@ public class MessagesDownloader{
|
||||
|
||||
@Override
|
||||
String provideHeader(String dialogName, String date){
|
||||
return "<div class=\"vtex-milk-header\"><h4 class=\"vtex-milk-header-txt\">VTLite</h4><h5 class=\"vtex-milk-header-sub\">Экспорт истории чата (" + date + ")</h5></div><div class=\"vtex-milk-msgcont\">";
|
||||
return "<div class=\"vtex-milk-header\"><h4 class=\"vtex-milk-header-txt\">VTLite</h4><h5 class=\"vtex-milk-header-sub\">" + getString("chat_export_header") + " (" + date + ")</h5></div><div class=\"vtex-milk-msgcont\">";
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -307,13 +309,13 @@ public class MessagesDownloader{
|
||||
}
|
||||
|
||||
String chatAction = (message.chat_action != null) ? getHtmlForChatAction(message.chat_action) : "";
|
||||
String attaches = (message.attachments.size() > 0) ? "<p class=\"msg-attaches\">Вложения: " + getHtmlForAttach(message.attachments) + "</p>" : "";
|
||||
String attaches = (message.attachments.size() > 0) ? "<p class=\"msg-attaches\">" + getString("attachments") + ": " + getHtmlForAttach(message.attachments) + "</p>" : "";
|
||||
String reply = (message.reply_message != null) ? provideReply(message.reply_message) : "";
|
||||
String fwdMessages = (message.fwd_messages.size() > 0) ? provideForwardMessages(message.fwd_messages) : "";
|
||||
String userLink = (user.isGroup ? "club" : "id") + user.id;
|
||||
|
||||
return "<div class=\"vtex-milk-msg" + isOut + "\" id=\"" + message.id + "\">" +
|
||||
"<p class=\"msg-from\">от <a href=\"https://" + VK_DOMAIN + "/" + userLink + "\">" + user.firstName + " " + user.lastName + "</a> <span class=\"msg-from-date\">" + formatTime(message.date) + "</span></p>" + // TODO photo100
|
||||
"<p class=\"msg-from\">" + getString("from_lower") + " <a href=\"https://" + VK_DOMAIN + "/" + userLink + "\">" + user.firstName + " " + user.lastName + "</a> <span class=\"msg-from-date\">" + formatTime(message.date) + "</span></p>" + // TODO photo100
|
||||
"<p class=\"msg-body\">" + mentionsReplace(message.text) + "</p>" +
|
||||
geoPosition +
|
||||
chatAction +
|
||||
@@ -336,12 +338,12 @@ public class MessagesDownloader{
|
||||
if (fwdMessages != null) {
|
||||
var length = fwdMessages.length();
|
||||
if (length > 0) text = length + " " + pluralMsg(length);
|
||||
} else text = "Вложение";
|
||||
} else text = getString("attachment"); // Вложение
|
||||
}
|
||||
|
||||
return "<a href=\"#" + messageId + "\" class=\"msg-attach-link\">" +
|
||||
"<div class=\"msg-reply\">" +
|
||||
"<p class=\"reply-header\">Пересланное сообщение</p>" +
|
||||
"<p class=\"reply-header\">" + getString("vkim_msg_fwd_single") + "</p>" +
|
||||
"<p class=\"reply-content\">" + user.firstName + " " + user.lastName + ": " + text + "</p>" +
|
||||
"</div>" +
|
||||
"</a>";
|
||||
@@ -382,7 +384,7 @@ public class MessagesDownloader{
|
||||
|
||||
JSONObject reply_message = fwd_message.optJSONObject("reply_message");
|
||||
|
||||
var attachesHtml = (attaches.size() > 0) ? "Вложения: " + getHtmlForAttach(attaches) : "";
|
||||
var attachesHtml = (attaches.size() > 0) ? getString("attachments") + ": " + getHtmlForAttach(attaches) : "";
|
||||
var replyHtml = (reply_message != null) ? provideReply(reply_message) : "";
|
||||
var fwdsHtml = (fwdsMsg.size() > 0) ? provideForwardMessages(fwdsMsg) : ""; // recursion XD :>
|
||||
|
||||
@@ -405,7 +407,7 @@ public class MessagesDownloader{
|
||||
}
|
||||
|
||||
private String pluralMsg(int count) {
|
||||
String[] plurals = {"сообщение", "сообщения", "сообщений"};
|
||||
String[] plurals = getArray("msg_plurals");
|
||||
|
||||
var hundredModulo = count % 100;
|
||||
var tenModulo = count % 10;
|
||||
@@ -424,22 +426,22 @@ public class MessagesDownloader{
|
||||
|
||||
switch(type) {
|
||||
case "chat_photo_update":
|
||||
htmlAction.append("Обновил фотографию беседы");
|
||||
htmlAction.append(getString("chat_export_avatar_update"));
|
||||
break;
|
||||
case "chat_photo_remove":
|
||||
htmlAction.append("Удалил фотографию беседы");
|
||||
htmlAction.append(getString("chat_export_avatar_remove"));
|
||||
break;
|
||||
case "chat_create":
|
||||
var name = action.optString("text");
|
||||
htmlAction.append("Создал беседу").append((!name.isEmpty()) ? " с названием \"" + name + "\"" : "");
|
||||
htmlAction.append(getString("chat_export_chat_created")).append((!name.isEmpty()) ? " \"" + name + "\"" : "");
|
||||
break;
|
||||
case "chat_title_update":
|
||||
var newName = action.optString("text");
|
||||
htmlAction.append("Сменил название беседы").append((!newName.isEmpty()) ? " на \"" + newName : "\"");
|
||||
htmlAction.append(getString("chat_export_name_changed")).append((!newName.isEmpty()) ? (" " + getString("chat_export_to") + " \"" + newName + "\"") : "");
|
||||
break;
|
||||
case "chat_invite_user":
|
||||
var newUserId = action.optInt("member_id");
|
||||
htmlAction.append("Добавил ").append((newUserId > 0) ? "пользователя" : "группу");
|
||||
htmlAction.append(getString("chat_export_user_added") + " ").append((newUserId > 0) ? getString("chat_export_type_user") : getString("chat_export_type_group"));
|
||||
if (newUserId != 0) {
|
||||
var userLink = ((newUserId < 0) ? "club" : "id") + Math.abs(newUserId);
|
||||
htmlAction.append(" <a href=\"https://" + VK_DOMAIN + "/").append(userLink).append("\" class=\"msg-attach-link\">@").append(userLink).append("</a>");
|
||||
@@ -447,7 +449,7 @@ public class MessagesDownloader{
|
||||
break;
|
||||
case "chat_kick_user":
|
||||
var removedUserId = action.optInt("member_id");
|
||||
htmlAction.append("Исключил ").append((removedUserId > 0) ? "пользователя" : "группу");
|
||||
htmlAction.append(getString("chat_export_user_kicked") + " ").append((removedUserId > 0) ? getString("chat_export_type_user") : getString("chat_export_type_group"));
|
||||
if (removedUserId != 0) {
|
||||
var userLink = ((removedUserId < 0) ? "club" : "id") + Math.abs(removedUserId);
|
||||
htmlAction.append(" <a href=\"https://" + VK_DOMAIN + "/").append(userLink).append("\" class=\"msg-attach-link\">@").append(userLink).append("</a>");
|
||||
@@ -455,22 +457,22 @@ public class MessagesDownloader{
|
||||
break;
|
||||
case "chat_pin_message":
|
||||
var message = action.optString("message");
|
||||
htmlAction.append("Закрепил сообщение").append((!message.isEmpty()) ? (" с текстом: \"" + message + "\"") : "");
|
||||
htmlAction.append(getString("chat_export_msg_pinned")).append((!message.isEmpty()) ? (" \"" + message + "\"") : "");
|
||||
break;
|
||||
case "chat_unpin_message":
|
||||
htmlAction.append("Открепил сообщение");
|
||||
htmlAction.append(getString("chat_export_msg_unpinned"));
|
||||
break;
|
||||
case "chat_invite_user_by_link":
|
||||
htmlAction.append("Вступил в беседу по ссылке");
|
||||
htmlAction.append(getString("chat_export_join_by_link"));
|
||||
break;
|
||||
case "chat_screenshot":
|
||||
htmlAction.append("Сделал скриншот беседы");
|
||||
htmlAction.append(getString("chat_export_chat_screenshot"));
|
||||
break;
|
||||
case "custom":
|
||||
htmlAction.append(action.optString("message"));
|
||||
break;
|
||||
default:
|
||||
htmlAction.append("Действие не поддерживается (").append(type).append(")");
|
||||
htmlAction.append(getString("vkim_msg_unsupported") + " (").append(type).append(")");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -489,40 +491,40 @@ public class MessagesDownloader{
|
||||
switch(type) { // market_album is not supported
|
||||
case "photo":
|
||||
var sizes = item.getJSONArray("sizes");
|
||||
rs.append("<a href=\"").append(sizes.getJSONObject(sizes.length() - 1).getString("url")).append("\" class=\"msg-attach-link\">фотография</a>");
|
||||
rs.append("<a href=\"").append(sizes.getJSONObject(sizes.length() - 1).getString("url")).append("\" class=\"msg-attach-link\">").append(getString("chat_export_type_photo")).append("</a>");
|
||||
break;
|
||||
case "doc":
|
||||
rs.append("<a href=\"").append(item.getString("url")).append("\" class=\"msg-attach-link\">документ</a>");
|
||||
rs.append("<a href=\"").append(item.getString("url")).append("\" class=\"msg-attach-link\">").append(getString("chat_export_type_doc")).append("</a>");
|
||||
break;
|
||||
case "link":
|
||||
rs.append("<a href=\"").append(item.getString("url")).append("\" class=\"msg-attach-link\">ссылка</a>");
|
||||
rs.append("<a href=\"").append(item.getString("url")).append("\" class=\"msg-attach-link\">").append(getString("chat_export_type_link")).append("</a>");
|
||||
break;
|
||||
case "wall":
|
||||
rs.append("<a href=\"https://" + VK_DOMAIN + "/wall").append(item.optString("to_id", item.optString("owner_id"))).append("_").append(item.getString("id")).append("\" class=\"msg-attach-link\">запись на стене</a>");
|
||||
rs.append("<a href=\"https://" + VK_DOMAIN + "/wall").append(item.optString("to_id", item.optString("owner_id"))).append("_").append(item.getString("id")).append("\" class=\"msg-attach-link\">").append(getString("chat_export_type_wallpost")).append("</a>");
|
||||
break;
|
||||
case "sticker":
|
||||
rs.append("<img style=\"width:128px;height:128px;\" src=\"").append(item.getJSONArray("images").getJSONObject(1).getString("url")).append("\"/>");
|
||||
break;
|
||||
case "audio_message":
|
||||
rs.append("<a href=\"").append(item.optString("link_mp3")).append("\" class=\"msg-attach-link\">голосовое сообщение</a>");
|
||||
rs.append("<a href=\"").append(item.optString("link_mp3")).append("\" class=\"msg-attach-link\">").append(getString("chat_export_type_audiomsg")).append("</a>");
|
||||
break;
|
||||
case "audio":
|
||||
rs.append("аудиозапись (").append(item.optString("artist")).append(" — ").append(item.optString("title")).append(")");
|
||||
rs.append(getString("chat_export_type_audio")).append(" (").append(item.optString("artist")).append(" — ").append(item.optString("title")).append(")");
|
||||
break;
|
||||
case "video":
|
||||
rs.append("видеозапись ( ").append(getVideoHtml(item.optJSONObject("files"))).append(")");
|
||||
rs.append(getString("chat_export_type_video")).append(" (").append(getVideoHtml(item.optJSONObject("files"))).append(")");
|
||||
break;
|
||||
case "wall_reply":
|
||||
var link = "https://" + VK_DOMAIN + "/wall" + item.optString("owner_id") + "_" + item.optString("post_id") + "?reply=" + item.optString("id");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(link).append("\">комментарий на стене</a>");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(link).append("\">").append(getString("chat_export_type_wallreply")).append("</a>");
|
||||
break;
|
||||
case "story":
|
||||
var story_link = "https://" + VK_DOMAIN + "/story" + item.optString("owner_id") + "_" + item.optString("id");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(story_link).append("\">история</a>");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(story_link).append("\">").append(getString("chat_export_type_story")).append("</a>");
|
||||
break;
|
||||
case "podcast":
|
||||
var podcast_link = "https://" + VK_DOMAIN + "/podcast" + item.optString("owner_id") + "_" + item.optString("id");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(podcast_link).append("\">подкаст</a>");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(podcast_link).append("\">").append(getString("chat_export_type_podcast")).append("</a>");
|
||||
break;
|
||||
case "gift":
|
||||
rs.append("<img src=\"").append(item.optString("thumb_96")).append("\"/>");
|
||||
@@ -532,25 +534,25 @@ public class MessagesDownloader{
|
||||
|
||||
if (app != null) {
|
||||
var miniapp_link = "https://" + VK_DOMAIN + "/app" + app.optString("id");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(miniapp_link).append("\">мини-приложение</a>");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(miniapp_link).append("\">").append(getString("chat_export_type_miniapp")).append("</a>");
|
||||
break;
|
||||
}
|
||||
|
||||
rs.append("ошибка");
|
||||
rs.append(getString("chat_export_error"));
|
||||
break;
|
||||
case "audio_playlist":
|
||||
var playlist_link = "https://" + VK_DOMAIN + "/music/album/" + item.optString("owner_id") + "_" + item.optString("id") + "_" + item.optString("access_key");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(playlist_link).append("\">плейлист (").append(item.optString("title")).append(")</a>");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(playlist_link).append("\">").append(getString("chat_export_type_playlist")).append(" (").append(item.optString("title")).append(")</a>");
|
||||
break;
|
||||
case "poll":
|
||||
rs.append((item.optBoolean("anonymous") ? "анонимный" : "публичный")).append(" опрос ").append(getPollHtml(item));
|
||||
rs.append(getString(item.optBoolean("anonymous") ? "chat_export_poll_anon" : "chat_export_poll_publ")).append(" ").append(getString("chat_export_type_poll")).append(" ").append(getPollHtml(item));
|
||||
break;
|
||||
case "market":
|
||||
var market_item_link = "https://" + VK_DOMAIN + "/market" + item.optString("owner_id") + "_" + item.optString("id");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(market_item_link).append("\">товар</a>");
|
||||
rs.append("<a class=\"msg-attach-link\" href=\"").append(market_item_link).append("\">").append(getString("chat_export_type_market")).append("</a>");
|
||||
break;
|
||||
default:
|
||||
rs.append("не поддерживается (").append(type).append(")");
|
||||
rs.append(getString("vkim_msg_unsupported")).append(" (").append(type).append(")");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -575,13 +577,13 @@ public class MessagesDownloader{
|
||||
pollHtml.append("<hr><p>").append(jsonObject.optString("text")).append(" · ").append(jsonObject.optString("votes")).append(" (").append(jsonObject.optString("rate")).append("%)</p>");
|
||||
}
|
||||
|
||||
pollHtml.append("<hr><p style=\"text-align:center;\">Проголосовало ").append(poll.optString("votes")).append(" чел.</p>");
|
||||
pollHtml.append("<hr><p style=\"text-align:center;\">").append(getString("chat_export_poll_voted")).append(" ").append(poll.optString("votes")).append(" ").append(getString("chat_export_users_name")).append("</p>");
|
||||
|
||||
return pollHtml.append("</div>").toString();
|
||||
}
|
||||
|
||||
private static String getVideoHtml(JSONObject files) throws JSONException {
|
||||
if (files == null) return "ссылки отсутствуют";
|
||||
if (files == null) return getString("chat_export_video_nolinks");
|
||||
|
||||
Iterator< ? > keys = files.keys();
|
||||
StringBuilder videoHtml = new StringBuilder();
|
||||
|
||||
@@ -120,7 +120,7 @@ public class Scrobbler {
|
||||
@Override
|
||||
public void onFailure(NetCall call, IOException e) {
|
||||
Log.d("Scrobbler", "Auth failed", e);
|
||||
sendToast(AndroidUtils.getString("lastfm_auth_error"));
|
||||
sendToast(AndroidUtils.getString("auth_error_vtl"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package ru.vtosters.lite.ui.dialogs;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.edit;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getString;
|
||||
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
|
||||
|
||||
import android.app.Activity;
|
||||
@@ -13,17 +14,15 @@ public class ThemeChanging{
|
||||
public static void changeTheme(Activity activity, float[] f){
|
||||
if (getBoolValue("systemtheme", true)) {
|
||||
new VkAlertDialog.Builder(activity)
|
||||
.setTitle("Внимание!")
|
||||
.setMessage("У вас включена системная тема \n" +
|
||||
"При переключении темы системная тема будет отключена \n\n" +
|
||||
"Вы действительно хотите отключить её?")
|
||||
.setTitle(getString("warning"))
|
||||
.setMessage(getString("system_theme_warning"))
|
||||
.setCancelable(false)
|
||||
.setPositiveButton("Отключить", (dialogInterface, i) -> {
|
||||
.setPositiveButton(getString("proxy_disable"), (dialogInterface, i) -> { // Отключить
|
||||
edit().putBoolean("systemtheme", false).commit();
|
||||
VKThemeHelper.b(activity, f);
|
||||
VKUIHook.clearWebCache();
|
||||
})
|
||||
.setNeutralButton("Отмена", null)
|
||||
.setNeutralButton(getString("cancel"), null)
|
||||
.show();
|
||||
} else {
|
||||
VKThemeHelper.b(activity, f);
|
||||
|
||||
@@ -210,7 +210,7 @@ public class MediaFragment extends MaterialPreferenceToolbarFragment {
|
||||
private void deleteVideoHistoryDialog(Context context){
|
||||
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(context);
|
||||
builder.setTitle(AndroidUtils.getString("warning"));
|
||||
builder.setMessage("Вы действительно хотите очистить историю видео?");
|
||||
builder.setMessage(AndroidUtils.getString("delete_video_history_confirm"));
|
||||
builder.setCancelable(false);
|
||||
builder.setPositiveButton(AndroidUtils.getString("yes"), (dialogInterface, i) -> {
|
||||
deleteVideoHistory();
|
||||
|
||||
@@ -309,7 +309,7 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment {
|
||||
private void delprefs(Context context) {
|
||||
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(context);
|
||||
builder.setTitle(AndroidUtils.getString("warning"));
|
||||
builder.setMessage("Вы действительно хотите сбросить настройки?");
|
||||
builder.setMessage(AndroidUtils.getString("settings_reset_confirm"));
|
||||
builder.setCancelable(false);
|
||||
builder.setPositiveButton(AndroidUtils.getString("yes"), (dialogInterface, i) -> {
|
||||
deletePrefs();
|
||||
|
||||
@@ -179,19 +179,17 @@ public class VTSettings extends MaterialPreferenceToolbarFragment {
|
||||
|
||||
if (Preferences.systemtheme()) {
|
||||
new VkAlertDialog.Builder(requireActivity())
|
||||
.setTitle("Внимание!")
|
||||
.setMessage("У вас включена системная тема \n" +
|
||||
"При переключении темы системная тема будет отключена \n\n" +
|
||||
"Вы действительно хотите отключить её?")
|
||||
.setTitle(AndroidUtils.getString("warning"))
|
||||
.setMessage(AndroidUtils.getString("system_theme_warning"))
|
||||
.setCancelable(false)
|
||||
.setPositiveButton("Отключить", (dialogInterface, i) -> {
|
||||
.setPositiveButton(AndroidUtils.getString("proxy_disable"), (dialogInterface, i) -> { // Отключить
|
||||
switchPreference.setChecked(isDarkTheme);
|
||||
((MaterialSwitchPreference) findPreference("systemtheme")).setChecked(false);
|
||||
requireActivity().runOnUiThread(() -> {
|
||||
switchTheme(isDarkTheme);
|
||||
});
|
||||
})
|
||||
.setNeutralButton("Отмена", null)
|
||||
.setNeutralButton(AndroidUtils.getString("cancel"), null)
|
||||
.show();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment{
|
||||
});
|
||||
}
|
||||
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "compresswp", "Сжимать обои", "Значительно ускоряет открытие чатов", null, true, (preference, o) -> {
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "compresswp", AndroidUtils.getString("compress_wallpaper_title"), AndroidUtils.getString("compress_wallpaper_summ"), null, true, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("compresswp", value).commit();
|
||||
requestUpdateWallpaper();
|
||||
|
||||
@@ -4,6 +4,7 @@ import static com.vk.im.engine.h.im_bg_chat;
|
||||
import static ru.vtosters.lite.ui.wallpapers.ImageFilters.getFilteredDrawable;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getPreferences;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getString;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
|
||||
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
|
||||
|
||||
@@ -71,7 +72,7 @@ public class WallpapersHooks{
|
||||
|
||||
private static Boolean eligibleWallpaperFile(File file){
|
||||
if (file.length() >= 6291456) {
|
||||
sendToast("Размер файла превышает лимит 6 MB");
|
||||
sendToast(getString("wallpaper_size_limit"));
|
||||
removeWallpaper();
|
||||
return false;
|
||||
} else {
|
||||
@@ -131,13 +132,13 @@ public class WallpapersHooks{
|
||||
String radius = getPreferences().getString("msg_blur_radius", "disabled");
|
||||
switch(radius) {
|
||||
case "low":
|
||||
return AndroidUtils.getString("wallpapers_low");
|
||||
return getString("wallpapers_low");
|
||||
case "med":
|
||||
return AndroidUtils.getString("wallpapers_med");
|
||||
return getString("wallpapers_med");
|
||||
case "high":
|
||||
return AndroidUtils.getString("wallpapers_high");
|
||||
return getString("wallpapers_high");
|
||||
default:
|
||||
return AndroidUtils.getString("wallpapers_disabled");
|
||||
return getString("wallpapers_disabled");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,11 +146,11 @@ public class WallpapersHooks{
|
||||
String radius = getPreferences().getString("msg_dim", "disabled");
|
||||
switch(radius) {
|
||||
case "dim_black":
|
||||
return AndroidUtils.getString("wallpapers_dim_black");
|
||||
return getString("wallpapers_dim_black");
|
||||
case "dim_white":
|
||||
return AndroidUtils.getString("wallpapers_dim_white");
|
||||
return getString("wallpapers_dim_white");
|
||||
default:
|
||||
return AndroidUtils.getString("wallpapers_disabled");
|
||||
return getString("wallpapers_disabled");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,13 +158,13 @@ public class WallpapersHooks{
|
||||
String radius = getPreferences().getString("msg_mosaic", "disabled");
|
||||
switch(radius) {
|
||||
case "low":
|
||||
return AndroidUtils.getString("wallpapers_low");
|
||||
return getString("wallpapers_low");
|
||||
case "med":
|
||||
return AndroidUtils.getString("wallpapers_med");
|
||||
return getString("wallpapers_med");
|
||||
case "high":
|
||||
return AndroidUtils.getString("wallpapers_high");
|
||||
return getString("wallpapers_high");
|
||||
default:
|
||||
return AndroidUtils.getString("wallpapers_disabled");
|
||||
return getString("wallpapers_disabled");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import static androidx.core.app.ActivityCompat.requestPermissions;
|
||||
import static ru.vtosters.lite.net.Request.makeRequest;
|
||||
import static ru.vtosters.lite.proxy.ProxyUtils.getApi;
|
||||
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getString;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
|
||||
|
||||
import android.Manifest;
|
||||
@@ -39,7 +40,7 @@ public class ContactsUtils{
|
||||
Log.d("ContactsUtils", "Result: " + mainJson + ", enabled sync: " + enabled);
|
||||
} catch (JSONException e) {
|
||||
Log.d("ContactsUtils", e.getMessage());
|
||||
sendToast("Ошибка установки контактов");
|
||||
sendToast(getString("contact_sync_error"));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -47,7 +48,7 @@ public class ContactsUtils{
|
||||
public static void uploadContacts(Context ctx){
|
||||
try {
|
||||
if (ContextCompat.checkSelfPermission(ctx, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
|
||||
sendToast("Для работы данной функции необходимо выдать право на чтение контактов");
|
||||
sendToast(getString("contact_permission_toast"));
|
||||
requestPermissions(LifecycleUtils.getCurrentActivity(), new String[] {Manifest.permission.READ_CONTACTS}, 11111);
|
||||
} else {
|
||||
var account = VKAuthUtils.a.a(VKAccountManager.d().Z());
|
||||
@@ -60,7 +61,7 @@ public class ContactsUtils{
|
||||
|
||||
public static void getContactsStatus(Context ctx){
|
||||
final ProgressDialog progressDialog = new ProgressDialog(ctx);
|
||||
progressDialog.setMessage("Загрузка данных о контактах...");
|
||||
progressDialog.setMessage(getString("contact_info_loading"));
|
||||
progressDialog.show();
|
||||
|
||||
var request = new okhttp3.Request.a()
|
||||
@@ -80,10 +81,10 @@ public class ContactsUtils{
|
||||
boolean enabledsync = resp.equals("contact");
|
||||
|
||||
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(ctx);
|
||||
builder.setTitle("Синхронизация контактов");
|
||||
builder.setMessage("Статус синхронизации: " + (enabledsync ? "Включена" : "Отключена"));
|
||||
builder.setTitle(getString("contact_sync_title"));
|
||||
builder.setMessage(getString("contact_sync_state") + ": " + getString(enabledsync ? "contact_sync_enabled" : "contact_sync_disabled"));
|
||||
builder.setCancelable(true);
|
||||
builder.setPositiveButton((!enabledsync ? "Включить" : "Отключить"), (dialog, which) -> {
|
||||
builder.setPositiveButton((!enabledsync ? getString("enable") : getString("proxy_disable")), (dialog, which) -> {
|
||||
setContactsSync(!enabledsync);
|
||||
});
|
||||
// builder.setNegativeButton("Импортировать контакты", (dialog, which) -> {
|
||||
|
||||
@@ -5,6 +5,7 @@ import static ru.vtosters.lite.proxy.ProxyUtils.getOauth;
|
||||
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.edit;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getString;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
|
||||
|
||||
import android.util.Log;
|
||||
@@ -33,7 +34,7 @@ public class VKMeHandler{
|
||||
setToken(mainJson.getString("access_token"));
|
||||
} else if (mainJson.has("error_description")){
|
||||
Log.d("VKMeHandler", mainJson.getString("error_description"));
|
||||
sendToast("Ошибка входа: " + mainJson.getString("error_description"));
|
||||
sendToast(getString("auth_error_vtl") + ": " + mainJson.getString("error_description"));
|
||||
}
|
||||
|
||||
} catch (JSONException e) {
|
||||
|
||||
@@ -559,8 +559,6 @@
|
||||
<item>Fade</item>
|
||||
<item>AndroidX</item>
|
||||
<item>Слайд</item>
|
||||
<item>Системный</item>
|
||||
<item>Системный (task)</item>
|
||||
</string-array>
|
||||
<string-array name="language">
|
||||
<item>Системный</item>
|
||||
@@ -676,4 +674,9 @@
|
||||
<item>Затемнить</item>
|
||||
<item>Осветлить</item>
|
||||
</string-array>
|
||||
<string-array name="msg_plurals">
|
||||
<item>сообщение</item>
|
||||
<item>сообщения</item>
|
||||
<item>сообщений</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
||||
@@ -5518,7 +5518,7 @@
|
||||
<string name="sett_compress_photo_summ">Отключение значительно улучшит качество загружаемых фотографий</string>
|
||||
<string name="sett_compress_video_summ">Отключение значительно улучшит качество загружаемых видео</string>
|
||||
<string name="lastfm_auth_title">Аккаунт</string>
|
||||
<string name="lastfm_auth_error">Ошибка входа</string>
|
||||
<string name="auth_error_vtl">Ошибка входа</string>
|
||||
<string name="lastfm_auth_summ">Вы не вошли в аккаунт</string>
|
||||
<string name="lastfm_logout_success">Вы успешно вышли из учетной записи</string>
|
||||
<string name="lastfm_enabled_title">Включить скробблинг</string>
|
||||
@@ -6185,4 +6185,70 @@
|
||||
|
||||
<string name="download_dl">Скачать диалог</string>
|
||||
<string name="download_dl_error">Произошла ошибка при попытке скачать диалог</string>
|
||||
|
||||
<string name="saved_as">Сохранено как</string>
|
||||
<string name="settings_reset_confirm">Вы действительно хотите сбросить настройки?</string>
|
||||
<string name="system_theme_warning">У вас включена системная тема \nПри переключении темы системная тема будет отключена \n\nВы действительно хотите отключить её?</string>
|
||||
|
||||
<string name="compress_wallpaper_title">Сжимать обои</string>
|
||||
<string name="compress_wallpaper_summ">Значительно ускоряет открытие чатов</string>
|
||||
|
||||
<string name="from_lower">от</string>
|
||||
<string name="chat_export_error">ошибка</string>
|
||||
|
||||
<string name="chat_export_title">Экспорт из VTLite</string>
|
||||
<string name="chat_export_header">Экспорт истории чата</string>
|
||||
<string name="chat_export_avatar_update">Обновил фотографию беседы</string>
|
||||
<string name="chat_export_avatar_remove">Удалил фотографию беседы</string>
|
||||
<string name="chat_export_chat_created">Создал беседу</string>
|
||||
<string name="chat_export_name_changed">Сменил название беседы</string>
|
||||
<string name="chat_export_to">на</string>
|
||||
<string name="chat_export_user_added">Добавил</string>
|
||||
<string name="chat_export_user_kicked">Исключил</string>
|
||||
<string name="chat_export_type_group">группу</string>
|
||||
<string name="chat_export_type_user">пользователя</string>
|
||||
<string name="chat_export_msg_pinned">Закрепил сообщение</string>
|
||||
<string name="chat_export_msg_unpinned">Открепил сообщение</string>
|
||||
<string name="chat_export_join_by_link">Вступил в беседу по ссылке</string>
|
||||
<string name="chat_export_chat_screenshot">Сделал скриншот беседы</string>
|
||||
|
||||
<string name="chat_export_type_photo">фотография</string>
|
||||
<string name="chat_export_type_doc">документ</string>
|
||||
<string name="chat_export_type_link">ссылка</string>
|
||||
<string name="chat_export_type_wallpost">запись на стене</string>
|
||||
<string name="chat_export_type_audiomsg">голосовое сообщение</string>
|
||||
<string name="chat_export_type_audio">аудиозапись</string>
|
||||
<string name="chat_export_type_video">видеозапись</string>
|
||||
<string name="chat_export_type_wallreply">комментарий на стене</string>
|
||||
<string name="chat_export_type_story">история</string>
|
||||
<string name="chat_export_type_podcast">подкаст</string>
|
||||
<string name="chat_export_type_miniapp">мини-приложение</string>
|
||||
<string name="chat_export_type_playlist">плейлист</string>
|
||||
<string name="chat_export_poll_anon">анонимный</string>
|
||||
<string name="chat_export_poll_publ">публичный</string>
|
||||
<string name="chat_export_type_poll">опрос</string>
|
||||
<string name="chat_export_type_market">товар</string>
|
||||
|
||||
<string name="chat_export_poll_voted">Проголосовало</string>
|
||||
<string name="chat_export_users_name">чел.</string>
|
||||
|
||||
<string name="chat_export_video_nolinks">ссылки отсутствуют</string>
|
||||
|
||||
<string name="delete_video_history_confirm">Вы действительно хотите очистить историю видео?</string>
|
||||
|
||||
<string name="wallpaper_size_limit">Размер файла превышает лимит 6 MB</string>
|
||||
|
||||
<string name="contact_sync_error">Ошибка установки контактов</string>
|
||||
<string name="contact_permission_toast">Для работы данной функции необходимо выдать разрешение на чтение контактов</string>
|
||||
<string name="contact_info_loading">Загрузка данных о контактах...</string>
|
||||
<string name="contact_sync_title">Синхронизация контактов</string>
|
||||
<string name="contact_sync_state">Статус синхронизации</string>
|
||||
<string name="contact_sync_enabled">Включена</string>
|
||||
<string name="contact_sync_disabled">Отключена</string>
|
||||
|
||||
<string name="donotgetads_title">Не пытаться получать рекламу</string>
|
||||
<string name="donotgetads_summ">Не запрашивать рекламу и рекомендации\n\nМогут быть проблемы</string>
|
||||
|
||||
<string name="force_disable_psm_title">Не отправлять информацию о батарее</string>
|
||||
<string name="force_disable_psm_summ">Включение этой функции скроет информацию о состоянии вашего устройства в режиме экономии батареи и ВКонтакте будет отправлять вам медиаконтент без сильного сжатия и блюра</string>
|
||||
</resources>
|
||||
@@ -656,8 +656,6 @@
|
||||
<item>Fade</item>
|
||||
<item>AndroidX</item>
|
||||
<item>Slide</item>
|
||||
<item>System</item>
|
||||
<item>System task</item>
|
||||
</string-array>
|
||||
<string-array name="animations_values">
|
||||
<item>noanim</item>
|
||||
@@ -665,8 +663,6 @@
|
||||
<item>frag_fade</item>
|
||||
<item>frag_enter</item>
|
||||
<item>slide</item>
|
||||
<item>system</item>
|
||||
<item>system_task</item>
|
||||
</string-array>
|
||||
<string-array name="animations2">
|
||||
<item>No Animation</item>
|
||||
@@ -878,4 +874,9 @@
|
||||
<item>Dim</item>
|
||||
<item>Lighten</item>
|
||||
</string-array>
|
||||
<string-array name="msg_plurals">
|
||||
<item>message</item>
|
||||
<item>messages</item>
|
||||
<item>messages</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
||||
@@ -5652,7 +5652,7 @@ Expand text..."</string>
|
||||
<string name="sett_compress_photo_summ">Disabling will significantly improve the quality of uploaded photos</string>
|
||||
<string name="sett_compress_video_summ">Disabling will significantly improve the quality of uploaded videos</string>
|
||||
<string name="lastfm_auth_title">Account</string>
|
||||
<string name="lastfm_auth_error">Login failed</string>
|
||||
<string name="auth_error_vtl">Login failed</string>
|
||||
<string name="lastfm_auth_summ">You are not logged in</string>
|
||||
<string name="lastfm_logout_success">You have successfully logged out</string>
|
||||
<string name="lastfm_enabled_title">Enable scrobbling</string>
|
||||
@@ -6323,4 +6323,70 @@ May look like a fake leaving the online"</string>
|
||||
|
||||
<string name="download_dl">Download dialog</string>
|
||||
<string name="download_dl_error">An error occurred while trying to download the dialog</string>
|
||||
|
||||
<string name="saved_as">Saved as</string>
|
||||
<string name="settings_reset_confirm">Are you sure you want to reset your settings?</string>
|
||||
<string name="system_theme_warning">You have the system theme enabled \nWhen you switch the theme, the system theme will be disabled \n\nAre you sure you want to disable it?</string>
|
||||
|
||||
<string name="compress_wallpaper_title">Compress wallpaper</string>
|
||||
<string name="compress_wallpaper_summ">Greatly speeds up opening chats</string>
|
||||
|
||||
<string name="from_lower">from</string>
|
||||
<string name="chat_export_error">error</string>
|
||||
|
||||
<string name="chat_export_title">Export from VTLite</string>
|
||||
<string name="chat_export_header">Export chat history</string>
|
||||
<string name="chat_export_avatar_update">Updated the chat photo</string>
|
||||
<string name="chat_export_avatar_remove">Removed the chat photo</string>
|
||||
<string name="chat_export_chat_created">Created a chat</string>
|
||||
<string name="chat_export_name_changed">Changed the name of the conversation</string>
|
||||
<string name="chat_export_to">to</string>
|
||||
<string name="chat_export_user_added">Added</string>
|
||||
<string name="chat_export_user_kicked">Kicked</string>
|
||||
<string name="chat_export_type_group">group</string>
|
||||
<string name="chat_export_type_user">user</string>
|
||||
<string name="chat_export_msg_pinned">Pinned message</string>
|
||||
<string name="chat_export_msg_unpinned">Unpinned message</string>
|
||||
<string name="chat_export_join_by_link">Joined a chat by link</string>
|
||||
<string name="chat_export_chat_screenshot">Took a screenshot of the conversation</string>
|
||||
|
||||
<string name="chat_export_type_photo">photo</string>
|
||||
<string name="chat_export_type_doc">document</string>
|
||||
<string name="chat_export_type_link">link</string>
|
||||
<string name="chat_export_type_wallpost">wall post</string>
|
||||
<string name="chat_export_type_audiomsg">voice message</string>
|
||||
<string name="chat_export_type_audio">audio</string>
|
||||
<string name="chat_export_type_video">video</string>
|
||||
<string name="chat_export_type_wallreply">wall reply</string>
|
||||
<string name="chat_export_type_story">story</string>
|
||||
<string name="chat_export_type_podcast">podcast</string>
|
||||
<string name="chat_export_type_miniapp">miniapp</string>
|
||||
<string name="chat_export_type_playlist">playlist</string>
|
||||
<string name="chat_export_poll_anon">anonymous</string>
|
||||
<string name="chat_export_poll_publ">public</string>
|
||||
<string name="chat_export_type_poll">poll</string>
|
||||
<string name="chat_export_type_market">product</string>
|
||||
|
||||
<string name="chat_export_poll_voted">Voted</string>
|
||||
<string name="chat_export_users_name">user(s)</string>
|
||||
|
||||
<string name="chat_export_video_nolinks">no links</string>
|
||||
|
||||
<string name="delete_video_history_confirm">Are you sure you want to clear your video history?</string>
|
||||
|
||||
<string name="wallpaper_size_limit">File size exceeds 6 MB limit</string>
|
||||
|
||||
<string name="contact_sync_error">Error syncing contacts</string>
|
||||
<string name="contact_permission_toast">For this function to work, you must grant permission to read contacts</string>
|
||||
<string name="contact_info_loading">Loading contact data...</string>
|
||||
<string name="contact_sync_title">Sync contacts</string>
|
||||
<string name="contact_sync_state">Sync status</string>
|
||||
<string name="contact_sync_enabled">Enabled</string>
|
||||
<string name="contact_sync_disabled">Disabled</string>
|
||||
|
||||
<string name="donotgetads_title">Don\'t try to get ads</string>
|
||||
<string name="donotgetads_summ">Don\'t request ads and recommendations\n\nMay cause problems</string>
|
||||
|
||||
<string name="force_disable_psm_title">Don\'t send battery information</string>
|
||||
<string name="force_disable_psm_summ">Enabling this feature will hide information about the state of your device in battery saving mode and VK will send you media content without strong compression and blur</string>
|
||||
</resources>
|
||||
|
||||
@@ -134,12 +134,12 @@
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="donotgetads"
|
||||
android:summary="Не запрашивать рекламу и рекомендации\n\nМогуть быть проблемы"
|
||||
android:title="Не пытаться получать рекламу" />
|
||||
android:summary="@string/donotgetads_summ"
|
||||
android:title="@string/donotgetads_title" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="force_disable_psm"
|
||||
android:summary="Включение этой функции скроет информацию о состоянии вашего устройства в режиме экономии батареи и ВКонтакте будет отправлять вам медиаконтент без сильного сжатия и блюра"
|
||||
android:title="Не отправлять информацию о батарее" />
|
||||
android:summary="@string/force_disable_psm_summ"
|
||||
android:title="@string/force_disable_psm_title" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceCategory android:title="Синхронизация контактов">
|
||||
<PreferenceCategory android:title="@string/contact_sync_title">
|
||||
<Preference
|
||||
android:key="contacts_sync"
|
||||
android:title="Синхронизация контактов" />
|
||||
android:title="@string/contact_sync_title" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="@string/other_fix_app">
|
||||
<Preference
|
||||
|
||||
Reference in New Issue
Block a user