Compare commits

..
Author SHA1 Message Date
gdlbo dfa7ba031e shakal mode 2022-06-17 19:49:41 +03:00
gdlbo 6ddea672ad fixed multi account 2022-06-17 19:27:35 +03:00
gdlbo 047378a11d updated gh actions script 2022-06-17 19:13:27 +03:00
gdlbo 3420c4abb0 added compress disabler 2022-06-17 19:10:57 +03:00
gdlbo 15a8d70f5f added compress disabler 2022-06-17 19:08:37 +03:00
gdlbo 91f90a6609 Merge remote-tracking branch 'origin/master' 2022-06-17 18:35:06 +03:00
gdlbo e170b70999 added auto cleaning cache 2022-06-17 18:35:01 +03:00
gdlbo b489011d24 Merge pull request #342 from k1zn/master
Fix avatar position on tablet
2022-06-17 18:27:20 +03:00
gdlbo 58adfbd261 added auto cleaning cache 2022-06-17 18:21:10 +03:00
Erik Kiznov 3bb18b6daf Fix README.md 2022-06-17 20:09:03 +05:00
Erik Kiznov 120bf18416 Fix avatar position on tablet 2022-06-17 19:36:42 +05:00
Vologhat 428c4ef7d6 changed buttons style 2022-06-17 17:12:26 +03:00
gdlbo 40fc05fc15 fix foxbin.f0x1d.com/enotik 2022-06-17 15:12:59 +03:00
gdlbo 2e913223a2 fix 2022-06-17 14:54:47 +03:00
gdlbo 48f12a912c fix 99% problems on android 11 and lower 2022-06-17 14:19:27 +03:00
gdlbo 0228c0b8a1 fixed colors 2022-06-17 13:58:41 +03:00
gdlbo ba07aeb4d7 fix vk icon in menu 2022-06-17 13:53:17 +03:00
gdlbo 529b13f18b fixed crash android 5.1 2022-06-17 13:34:40 +03:00
gdlbo 5720fddb59 fix crash MusicFragment 2022-06-16 23:30:08 +03:00
43 changed files with 271 additions and 94 deletions
-1
View File
@@ -34,7 +34,6 @@ jobs:
- name: Build VTLite
run: |
git checkout master
bash scripts/buildworkflow.sh
- name: Sign and verify the apk
+4 -4
View File
@@ -21,13 +21,13 @@ android:debuggable="false" -> android:debuggable="true"
Для дополнительной отладки ответов, доп логов и подмены данных для дебаг приложения необходимо включить **Режим разработчика**
```
Настройки -> Для разработчиков -> Режим разработчика
Настройки -> О приложении -> Для разработчиков -> Режим разработчика
```
Для просмотра трафика необходимо отключить функцию **SSL Pinning**
```
Настройки -> Для разработчиков -> SSL Pinning
Настройки -> О приложении -> Для разработчиков -> SSL Pinning
```
Для логгирования внутренних запросов к API необходимо включить функции **Логгирование API**
@@ -35,12 +35,12 @@ android:debuggable="false" -> android:debuggable="true"
(Работает только при использовании внутреннего логгера!)
```
Настройки -> Для разработчиков -> Логгирование API
Настройки -> О приложении -> Для разработчиков -> Логгирование API
```
Для использования внутреннего логгера необходимо включить функции **Запись логов в файл**
```
Настройки -> Для разработчиков -> Запись логов в файл
Настройки -> О приложении -> Для разработчиков -> Запись логов в файл
```
Сразу после нажатия на запись аппа начнет записывать **все действия** в файлы по пути
```
@@ -1,6 +1,7 @@
package com.vk.core.ui.themes;
import com.vk.s.R;
import ru.vtosters.lite.utils.Themes;
public enum VKTheme {
@@ -4,7 +4,6 @@ import static android.widget.Toast.LENGTH_SHORT;
import static android.widget.Toast.makeText;
import static ru.vtosters.lite.utils.Globals.getIdentifier;
import static ru.vtosters.lite.utils.Globals.getString;
import static ru.vtosters.lite.utils.Preferences.getDateFormat;
import static ru.vtosters.lite.utils.Proxy.getApiCom;
import static ru.vtosters.lite.utils.Proxy.proxy;
@@ -15,7 +14,6 @@ import android.support.v7.app.AlertDialog;
import androidx.exifinterface.media.ExifInterface;
import com.vk.core.dialogs.alert.VkAlertDialog;
import com.vtosters.lite.R;
import java.io.IOException;
import java.text.ParseException;
@@ -45,6 +45,20 @@ public class PreferencesUtil {
fragment.ay().d(preference); // fragment.getPreferenceScreen().addPreference(preference)
}
public static void addListPreferenceIcon(MaterialPreferenceToolbarFragment fragment, String key, String def, CharSequence title, String icon, CharSequence summary, CharSequence[] entries, CharSequence[] entriesValue) {
ListPreference preference = new ListPreference(getContext());
preference.a(entries);
preference.b(entriesValue);
preference.b(summary); // setSummary
preference.c(title); // setTitle
preference.a(title); // setDialogTitle
preference.d(key); // setKey
preference.b(def); // setDefaultValue
if (icon != null)
preference.a(setTint(getContext(), getDrawable(getContext(), icon))); // preference.setIcon
fragment.ay().d(preference); // fragment.getPreferenceScreen().addPreference(preference)
}
public static void addMaterialSwitchPreference(MaterialPreferenceToolbarFragment materialPreferenceToolbarFragment, String key, CharSequence title, CharSequence summary, boolean defValue) {
MaterialSwitchPreference materialSwitchPreference = new MaterialSwitchPreference(getContext());
materialSwitchPreference.c(title); // setTitle
@@ -1,6 +1,6 @@
package ru.vtosters.lite.ui.fragments;
import static ru.vtosters.lite.utils.Globals.deleteCache;
import static ru.vtosters.lite.utils.CacheUtils.deleteCache;
import static ru.vtosters.lite.utils.Globals.getContext;
import static ru.vtosters.lite.utils.Globals.restartApplicationWithTimer;
@@ -1,14 +1,7 @@
package ru.vtosters.lite.ui.fragments;
import static ru.vtosters.lite.utils.Globals.getContext;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.preference.Preference;
import com.vk.navigation.Navigator;
import com.vk.webapp.VKConnect;
import com.vtosters.lite.R;
import com.vtosters.lite.fragments.MaterialPreferenceToolbarFragment;
@@ -17,23 +10,5 @@ public class MusicFragment extends MaterialPreferenceToolbarFragment {
public void b(Bundle bundle) {
super.b(bundle);
a(R.xml.preferences_music);
prefs();
}
private void prefs() {
a("vkid_warn").a(new MusicFragment.openvkid());
}
public static class openvkid implements Preference.c {
openvkid() {
}
@Override // android.support.v7.preference.Preference.c
public boolean a(Preference preference) {
Context context = getContext();
Intent a2 = new Navigator(VKConnect.class).a(context);
context.startActivity(a2);
return true;
}
}
}
@@ -2,7 +2,7 @@ package ru.vtosters.lite.ui.fragments;
import static android.widget.Toast.LENGTH_SHORT;
import static android.widget.Toast.makeText;
import static ru.vtosters.lite.utils.Globals.deleteCache;
import static ru.vtosters.lite.utils.CacheUtils.deleteCache;
import static ru.vtosters.lite.utils.Globals.getContext;
import static ru.vtosters.lite.utils.Globals.getString;
import static ru.vtosters.lite.utils.Globals.getUserToken;
@@ -2,12 +2,12 @@ package ru.vtosters.lite.ui.fragments;
import static bruhcollective.itaysonlab.libvkx.client.LibVKXClient.isIntegrationEnabled;
import static ru.vtosters.lite.f0x1d.VTVerifications.vtverif;
import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.getAccountPrefsCount;
import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.getCurrentAccount;
import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.withRegex;
import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.workingAccounts;
import static ru.vtosters.lite.utils.About.getBuildNumber;
import static ru.vtosters.lite.utils.About.getCommitLink;
import static ru.vtosters.lite.utils.CacheUtils.humanReadableByteCountBin;
import static ru.vtosters.lite.utils.Globals.drawableFromUrl;
import static ru.vtosters.lite.utils.Globals.edit;
import static ru.vtosters.lite.utils.Globals.getContext;
@@ -62,6 +62,7 @@ import ru.vtosters.lite.ui.fragments.dockbar.DockBarFragment;
import ru.vtosters.lite.ui.fragments.dockbar.DockBarManager;
import ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountFragment;
import ru.vtosters.lite.ui.fragments.tgstickers.StickersFragment;
import ru.vtosters.lite.utils.CacheUtils;
public class VTSettings extends MaterialPreferenceToolbarFragment {
@@ -308,6 +309,13 @@ public class VTSettings extends MaterialPreferenceToolbarFragment {
return false;
});
PreferencesUtil.addListPreferenceIcon(this, "clearcache", "Default", getString("autoclearcache"), "ic_delete_24", getString("autoclearcachesumm") + " " + humanReadableByteCountBin(CacheUtils.getInstance().size), new CharSequence[]{
getString("autoclearcachedisabled"), "100 MB", "500 MB", "1 GB", "2 GB", "5 GB"
}, new String[]{
"Default", "100mb", "500mb", "1gb", "2gb", "5gb"
});
PreferencesUtil.addPreference(this, "", getString("vtlother"), othersumm, "ic_more_24", preference -> {
Context context = getContext();
Intent a2 = new Navigator(OtherFragment.class).a(context);
@@ -388,7 +396,7 @@ public class VTSettings extends MaterialPreferenceToolbarFragment {
}
public static String getMultiAccsumm() {
if(disableSettingsSumms() || getAccountPrefsCount() <= 1) return "";
if(disableSettingsSumms() || workingAccounts() <= 1) return "";
return getString("vtlmultiaccsumm") + ": " + workingAccounts();
}
@@ -8,12 +8,13 @@ import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.a.ItemTouchHelper;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import me.grishka.appkit.fragments.ToolbarFragment;
@@ -40,7 +41,7 @@ public class DockBarFragment extends ToolbarFragment {
);
container.addView(buttonsContainer, new LinearLayout.LayoutParams(-1, -2));
Button save = new Button(n());
TextView save = new TextView(new ContextThemeWrapper(n(), com.vtosters.lite.R.style.VKUIButton_Primary));
save.setText(getString("dockbar_save"));
save.setOnClickListener(v -> {
DockBarManager.getInstance().save();
@@ -54,7 +55,7 @@ public class DockBarFragment extends ToolbarFragment {
View divider = new View(n());
buttonsContainer.addView(divider, new LinearLayout.LayoutParams(convertDpToPixel(10), 0));
Button reset = new Button(n());
TextView reset = new TextView(new ContextThemeWrapper(n(), com.vtosters.lite.R.style.VKUIButton_Primary));
reset.setText(getString("dockbar_reset"));
reset.setOnClickListener(v -> {
DockBarManager.getInstance().delete();
@@ -93,7 +93,7 @@ public class MultiAccountManager {
}
public static void addAccount() {
getPreferences().edit().putInt("account", workingAccounts()).commit();
getPreferences().edit().putInt("account", workingAccounts() + 1).commit();
}
public static void deleteAccount(int i) {
@@ -0,0 +1,88 @@
package ru.vtosters.lite.utils;
import static ru.vtosters.lite.utils.Globals.getContext;
import static ru.vtosters.lite.utils.Globals.sendToast;
import static ru.vtosters.lite.utils.Preferences.dev;
import static ru.vtosters.lite.utils.Preferences.getSizeForDelete;
import android.annotation.SuppressLint;
import java.io.File;
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
import java.util.Objects;
public class CacheUtils {
private static CacheUtils sInstance = new CacheUtils();
public long size = 0;
public static CacheUtils getInstance() {
if (sInstance == null)
sInstance = new CacheUtils();
return sInstance;
}
public void autoCleaningCache() {
size = getDirSize(getContext().getCacheDir());
if(size >= getSizeForDelete()) {
if(dev()) sendToast("Кэш очищен");
deleteCache();
size = 0;
}
}
public long getDirSize(File dir){
long size = 0;
for (File file : Objects.requireNonNull(dir.listFiles())) {
if (file != null && file.isDirectory()) {
size += getDirSize(file);
} else if (file != null && file.isFile()) {
size += file.length();
}
}
return size;
}
public static void deleteCache() {
try {
File dir = getContext().getCacheDir();
deleteDir(dir);
} catch (Exception e) {
e.printStackTrace();
}
}
public static boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i < Objects.requireNonNull(children).length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
return dir.delete();
} else if(dir!= null && dir.isFile()) {
return dir.delete();
} else {
return false;
}
}
@SuppressLint("DefaultLocale")
public static String humanReadableByteCountBin(long bytes) {
long absB = bytes == Long.MIN_VALUE ? Long.MAX_VALUE : Math.abs(bytes);
if (absB < 1024) {
return bytes + " B";
}
long value = absB;
CharacterIterator ci = new StringCharacterIterator("KMGTPE");
for (int i = 40; i >= 0 && absB > 0xfffccccccccccccL >> i; i -= 10) {
value >>= 10;
ci.next();
}
value *= Long.signum(bytes);
return String.format("%.1f %cB", value / 1024.0, ci.current());
}
}
@@ -42,7 +42,6 @@ import com.vtosters.lite.api.ExtendedUserProfile;
import com.vtosters.lite.auth.VKAccountManager;
import com.vtosters.lite.im.ImEngineProvider;
import java.io.File;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.net.URL;
@@ -50,7 +49,6 @@ import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import ru.vtosters.lite.ui.dialogs.DisableBattery;
import ru.vtosters.lite.ui.dialogs.InstallGMS;
@@ -202,31 +200,6 @@ public class Globals {
return null;
} // Getting the global context through reflection to use context on application initialization
public static void deleteCache() {
try {
File dir = getContext().getCacheDir();
deleteDir(dir);
} catch (Exception e) {
e.printStackTrace();
}
}
public static boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i < Objects.requireNonNull(children).length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
return dir.delete();
} else if(dir!= null && dir.isFile()) {
return dir.delete();
} else {
return false;
}
}
public static boolean isGmsInstalled() {
try {
getContext().getPackageManager().getPackageInfo("com.google.android.gms", 0);
@@ -1,9 +1,11 @@
package ru.vtosters.lite.utils;
import static android.os.Build.VERSION;
import static java.lang.Long.MAX_VALUE;
import static ru.vtosters.lite.f0x1d.VTVerifications.hasPrometheus;
import static ru.vtosters.lite.f0x1d.VTVerifications.isVerified;
import static ru.vtosters.lite.ui.fragments.multiaccount.MultiAccountManager.migrate;
import static ru.vtosters.lite.utils.CacheUtils.getInstance;
import static ru.vtosters.lite.utils.DeletedMessagesHandler.reloadMessagesList;
import static ru.vtosters.lite.utils.Globals.fixGapps;
import static ru.vtosters.lite.utils.Globals.getContext;
@@ -58,13 +60,16 @@ public class Preferences {
LoadLibrary("vkopustest");
}
systemThemeChanger();
getInstance().autoCleaningCache();
} // VK Init
public static void forceOffline() {
setupFilters();
getInstance().autoCleaningCache();
if (setoffline() && !offline()) {
Users.b();
}
setupFilters();
}
public static boolean getBoolValue(String key, Boolean value) {
@@ -438,6 +443,29 @@ public class Preferences {
}
}
public static long getSizeForDelete() {
switch (getPrefsValue("clearcache")) {
case "100mb":
return 104857600L;
case "500mb":
return 524288000L;
case "1gb":
return 1073741824L;
case "2gb":
return 2147483648L;
case "5gb":
return 5368709120L;
default:
return MAX_VALUE;
}
}
public static int compress(int origquality) {
if(getBoolValue("shakal", false)) return 5;
if(!getBoolValue("compressPhotos", true)) return 100;
return origquality;
}
public static String nullOnline() {
return getString("onlineNull");
}
@@ -1,7 +1,12 @@
package ru.vtosters.lite.utils;
import static android.view.View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
import static com.vk.im.ui.themes.ImTheme.*;
import static com.vk.im.ui.themes.ImTheme.VKAPP_AMOLED;
import static com.vk.im.ui.themes.ImTheme.VKAPP_DARK;
import static com.vk.im.ui.themes.ImTheme.VKAPP_LIGHT;
import static com.vk.im.ui.themes.ImTheme.VKME_AMOLED;
import static com.vk.im.ui.themes.ImTheme.VKME_DARK;
import static com.vk.im.ui.themes.ImTheme.VKME_LIGHT;
import static ru.vtosters.lite.utils.Globals.edit;
import static ru.vtosters.lite.utils.Globals.getIdentifier;
import static ru.vtosters.lite.utils.Globals.getPrefsValue;
@@ -162,8 +167,11 @@ public class Themes {
return color_grishka() && Build.VERSION.SDK_INT >= 31;
}
public static boolean isColorRefAccented(int i) {
return i == R.color.cornflower_blue || i == R.color.cornflower_blue_two || i == R.color.dot_unread || i == R.color.music_action_button_blue || i == R.color.fave_promo_btn_pressed || i == R.color.im_back_to_vk_gradient_start || i == R.color.live_emoji_butt_hide || i == R.color.picker_tab_bg_selected || i == R.color.sky_300 || i == R.color.text_blue || i == R.color.tw__blue_default || i == R.color.tw__blue_pressed || i == R.color.white_blue32 || i == R.color.name || i == R.color.picker_blue || i == R.color.picker_blue_pressed || i == R.color.picker_tab_text_selected || i == R.color.sharing_blue_btn_pressed || i == R.color.sharing_blue_btn_normal || i == R.color.tip_background || i == R.color.vkim_msg_sending_ic || i == R.color.vkim_playing_drawable_rect || i == R.color.accent_blue || i == R.color.light_blue_gray || i == R.color.light_blue || i == R.color.blue_200 || i == R.color.header_blue || i == R.color.blue_200_muted || i == R.color.im_old_accent || i == R.color.im_old_accent_muted || i == R.color.im_dark_accent || i == R.color.im_dark_accent_muted || i == R.color.azure_A400 || i == R.color.blue || i == R.color.blue_400 || i == R.color.blue_300 || i == R.color.cool_blue;
public static boolean isColorRefAccented(int color) {
for (int accent : new int[]{R.color.accent_blue, R.color.azure_A400, R.color.blue, R.color.blue_200, R.color.blue_200_muted, R.color.blue_300, R.color.blue_400, R.color.cool_blue, R.color.cornflower_blue, R.color.cornflower_blue_two, R.color.dot_unread, R.color.fave_promo_btn_pressed, R.color.header_blue, R.color.im_back_to_vk_gradient_start, R.color.im_dark_accent, R.color.im_dark_accent_muted, R.color.im_old_accent, R.color.im_old_accent_muted, R.color.light_blue, R.color.light_blue_gray, R.color.live_emoji_butt_hide, R.color.music_action_button_blue, R.color.name, R.color.picker_blue, R.color.picker_blue_pressed, R.color.picker_tab_bg_selected, R.color.picker_tab_text_selected, R.color.sharing_blue_btn_normal, R.color.sharing_blue_btn_pressed, R.color.sky_300, R.color.text_blue, R.color.tip_background, R.color.tw__blue_default, R.color.tw__blue_pressed, R.color.vkim_msg_sending_ic, R.color.vkim_playing_drawable_rect, R.color.white_blue32}) {
if(color == accent) return true;
}
return false;
} // Accent colors
public static void themeMonetToolbar(ImageButton imageButton, Toolbar toolbar) {
@@ -174,37 +182,60 @@ public class Themes {
}
public static Drawable recolorDrawable(Drawable drawable) {
if (drawable == null) {
return null;
}
if (drawable == null) return null;
return new RecoloredDrawable(drawable, getAccentColor());
} // Recolor drawable to accent color
public static Drawable recolorVKIconMenu(Drawable drawable) {
int accent = getHeaderText();
if (drawable == null) return null;
if(isAndroidMonet() || isDarkTheme()) accent = getAccentColor();
return new RecoloredDrawable(drawable, accent);
} // Recolor vk icon to accent color
public static Drawable recolorDrawableToolbar(Drawable drawable) {
if (drawable == null) {
return null;
}
if (drawable == null) return null;
if(!isAndroidMonet()) return drawable;
return new RecoloredDrawable(drawable, getHeaderText());
} // Recolor toolbar drawable to accent color
@SuppressLint("UseCompatLoadingForDrawables")
public static Drawable recolorDrawableInt(int drawable) {
if(!isAndroidMonet()) return getResources().getDrawable(drawable);
@SuppressLint("UseCompatLoadingForDrawables") Drawable res = getResources().getDrawable(drawable);
return new RecoloredDrawable(res, getAccentColor());
} // Get res drawable via id and coloring to accent
public static ColorStateList recolorCSL(ColorStateList colorStateList) {
if (colorStateList == null) {
return null;
}
if (colorStateList == null) return null;
if(!isAndroidMonet()) return colorStateList;
return ColorStateList.valueOf(getAccentColor());
} // Recolor ColorStateList to accent color
@SuppressLint("UseCompatLoadingForColorStateLists")
public static ColorStateList themeCSL(Context context, int color) {
if (isColorRefAccented(color) && isAndroidMonet()) {
return ColorStateList.valueOf(getAccentColor());
}
ColorStateList csl = context.getColorStateList(color);
ColorStateList csl;
if (Build.VERSION.SDK_INT >= 23) {
csl = context.getColorStateList(color);
} else {
csl = context.getResources().getColorStateList(color);
}
try {
int unsel = csl.getColorForState(new int[]{-android.R.attr.state_selected}, Color.BLACK);
int sel = csl.getColorForState(new int[]{android.R.attr.state_selected}, Color.BLACK);
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="23" android:compileSdkVersionCodename="6.0-2438415" package="com.vtosters.lite" platformBuildVersionCode="23" platformBuildVersionName="6.0-2438415">
<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="23" android:minSdkVersion="20" android:compileSdkVersionCodename="6.0-2438415" package="com.vtosters.lite" platformBuildVersionCode="23" platformBuildVersionName="6.0-2438415">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.CAMERA"/>
+1 -1
View File
@@ -23,7 +23,7 @@
style="@style/VKUIText.Title1" />
<TextView
android:textColor="?text_primary"
android:textColor="?text_secondary"
android:ellipsize="end"
android:id="@id/label"
android:layout_width="fill_parent"
@@ -23,7 +23,6 @@
<com.vk.imageloader.view.VKImageView
android:id="@id/iv_preview"
android:background="@drawable/picker_bg_graffiti_preview_top"
android:backgroundTint="?background_content"
android:paddingLeft="32.0dip"
android:paddingTop="32.0dip"
android:paddingRight="32.0dip"
@@ -35,11 +34,10 @@
<TextView
android:textSize="14.0sp"
android:textColor="?header_text"
android:textColor="#ffffffff"
android:gravity="center"
android:id="@id/tv_send_button"
android:background="@drawable/picker_bg_graffiti_preview_bottom"
android:backgroundTint="?accent"
android:paddingLeft="24.0dip"
android:paddingRight="24.0dip"
android:paddingBottom="24.0dip"
@@ -54,7 +54,7 @@
<TextView
android:textSize="14.0dip"
android:textColor="#ff8c8d8f"
android:textColor="?text_secondary"
android:ellipsize="marquee"
android:id="@id/label"
android:layout_width="fill_parent"
+1 -1
View File
@@ -71,7 +71,7 @@
<TextView
android:textSize="14.0dip"
android:textColor="#ff8c8d8f"
android:textColor="?text_secondary"
android:ellipsize="marquee"
android:id="@id/label"
android:layout_width="fill_parent"
+1 -1
View File
@@ -67,7 +67,7 @@
style="@style/VKUIText.Title1" />
<TextView
android:textColor="@color/gray_400"
android:textColor="?text_secondary"
android:id="@id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
@@ -76,6 +76,7 @@
android:singleLine="true" />
<TextView
android:textColor="?text_secondary"
android:textSize="14.0dip"
android:ellipsize="marquee"
android:id="@id/label"
+1 -1
View File
@@ -60,7 +60,7 @@
<com.vk.im.ui.views.FixTextView
android:textSize="14.0sp"
android:textColor="?text_primary"
android:textColor="?text_secondary"
android:ellipsize="end"
android:id="@id/content_body"
android:layout_width="fill_parent"
+3
View File
@@ -4201,6 +4201,9 @@
<string name="proxysocks">Socks Прокси</string>
<string name="proxystatic">Static Домен</string>
<string name="reportbug">Сообщить о баге</string>
<string name="autoclearcache">Автоочистка кэша</string>
<string name="autoclearcachesumm">Размер кэша:</string>
<string name="autoclearcachedisabled">Не очищать кэш</string>
<string name="reportbugsumm">Репорты багов помогают нам их исправлять</string>
<string name="restartapp">Перезапустите приложение</string>
<string name="savedmsg">Сохраненные сообщения</string>
+1 -1
View File
@@ -48,7 +48,7 @@
<dimen name="notification_header_bottom_padding">4.0dip</dimen>
<dimen name="notification_header_top_padding">17.0dip</dimen>
<dimen name="picker_dimen">400.0dip</dimen>
<dimen name="post_side_padding">32.0dip</dimen>
<dimen name="post_side_padding">20.0dip</dimen>
<dimen name="post_side_padding_btn">16.0dip</dimen>
<dimen name="post_side_padding_info">56.0dip</dimen>
<dimen name="post_side_padding_menu">20.0dip</dimen>
+1 -1
View File
@@ -2,7 +2,7 @@
<resources>
<dimen name="_post_side_padding">-32.0dip</dimen>
<dimen name="gift_min_size">128.0dip</dimen>
<dimen name="post_side_padding">32.0dip</dimen>
<dimen name="post_side_padding">20.0dip</dimen>
<dimen name="post_side_padding_btn">16.0dip</dimen>
<dimen name="post_side_padding_info">56.0dip</dimen>
<dimen name="post_side_padding_menu">20.0dip</dimen>
+1 -1
View File
@@ -17,7 +17,7 @@
<dimen name="picker_item_size_image">160.0dip</dimen>
<dimen name="picker_item_size_image_small">140.0dip</dimen>
<dimen name="picker_sticker_size">200.0dip</dimen>
<dimen name="post_side_padding">32.0dip</dimen>
<dimen name="post_side_padding">20.0dip</dimen>
<dimen name="post_side_padding_btn">16.0dip</dimen>
<dimen name="post_side_padding_info">56.0dip</dimen>
<dimen name="post_side_padding_menu">20.0dip</dimen>
+3
View File
@@ -4326,6 +4326,9 @@ You need to restart the application to apply proxy settings"</string>
<string name="proxysocks">Socks Proxy</string>
<string name="proxystatic">Static Domain</string>
<string name="reportbug">Report a bug</string>
<string name="autoclearcache">Auto cleaning app cache</string>
<string name="autoclearcachesumm">Cache size:</string>
<string name="autoclearcachedisabled">"Don't clear cache"</string>
<string name="reportbugsumm">Bug reports help us fix them</string>
<string name="restartapp">Please, restart app</string>
<string name="savedmsg">Saved messages</string>
+4
View File
@@ -69,6 +69,10 @@
android:defaultValue="true"
android:key="useNewSettings"
android:title="Use New Settings" />
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="false"
android:key="shakal"
android:title="shakalish pikchi da" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/debug_developer_functions">
<com.vtosters.lite.ui.MaterialSwitchPreference
@@ -215,6 +215,10 @@
const/16 v6, 0x56
invoke-static {v6}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v6
invoke-virtual {v4, v5, v6, v3}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
:try_end_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0
@@ -230,6 +230,10 @@
const/16 p2, 0x64
:goto_0
invoke-static {p2}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result p2
invoke-virtual {p0, v2, p2, v1}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
:try_end_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1
@@ -584,6 +584,10 @@
const/16 v14, 0x64
invoke-static {v14}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v14
check-cast v12, Ljava/io/OutputStream;
invoke-virtual {v10, v13, v14, v12}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
@@ -274,6 +274,10 @@
const/16 v10, 0x55
invoke-static {v10}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v10
invoke-virtual {v7, v9, v10, v8}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 701
@@ -346,6 +346,10 @@
const/16 v4, 0x5a
invoke-static {v4}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v4
move-object v5, v2
check-cast v5, Ljava/io/OutputStream;
@@ -5577,7 +5577,7 @@
move-result-object p1
invoke-static {p1}, Lru/vtosters/lite/utils/Themes;->recolorDrawable(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
invoke-static {p1}, Lru/vtosters/lite/utils/Themes;->recolorVKIconMenu(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
move-result-object p1
@@ -376,6 +376,10 @@
move-result v3
invoke-static {v3}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v3
move-object/from16 v8, p2
invoke-virtual {v1, v5, v3, v8}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
@@ -974,6 +974,10 @@
const/16 v4, 0x64
invoke-static {v4}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v4
invoke-virtual {v2, v3, v4, v1}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 437
@@ -121,6 +121,10 @@
const/16 v3, 0x64
invoke-static {v3}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v3
move-object v4, v1
check-cast v4, Ljava/io/OutputStream;
@@ -1036,6 +1036,10 @@
check-cast v13, Ljava/io/OutputStream;
invoke-static {v10}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v10
invoke-virtual {v3, v6, v10, v13}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 126
@@ -139,6 +139,10 @@
const/16 v2, 0x64
invoke-static {v2}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v2
invoke-virtual {p2, v0, v2, v1}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
const-string p2, ""
@@ -765,6 +765,10 @@
const/16 v6, 0x5a
invoke-static {v6}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v6
check-cast v4, Ljava/io/OutputStream;
invoke-virtual {p1, v5, v6, v4}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
@@ -126,6 +126,10 @@
const/16 v3, 0xa
invoke-static {v3}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v3
invoke-virtual {v1, v2, v3, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
.line 299
@@ -100,6 +100,10 @@
const/16 v6, 0x56
invoke-static {v6}, Lru/vtosters/lite/utils/Preferences;->compress(I)I
move-result v6
invoke-virtual {p1, v5, v6, v4}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
:try_end_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0