Compare commits
18
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
281a0e8499 | ||
|
|
220c61afe1 | ||
|
|
7a632d5224 | ||
|
|
3218c1a46b | ||
|
|
b2028d86ba | ||
|
|
45ed5879e6 | ||
|
|
48479dd064 | ||
|
|
3b556b81a1 | ||
|
|
526c9a607a | ||
|
|
81752895ab | ||
|
|
ad970d097a | ||
|
|
bc2010b49d | ||
|
|
ff4a4094ff | ||
|
|
3629e71098 | ||
|
|
b955ac355f | ||
|
|
409279eca0 | ||
|
|
ea0a0f1d93 | ||
|
|
3cc81dfddc |
+51
-71
@@ -1,8 +1,6 @@
|
||||
import org.apache.tools.ant.taskdefs.condition.Os
|
||||
|
||||
import java.util.zip.ZipEntry
|
||||
import java.util.zip.ZipFile
|
||||
import java.util.zip.ZipInputStream
|
||||
|
||||
plugins {
|
||||
id 'com.android.application'
|
||||
@@ -21,6 +19,10 @@ cargo {
|
||||
|
||||
def smaliFolder = projectDir.toPath().resolve("../smali").normalize()
|
||||
def scriptsFolder = projectDir.toPath().resolve("../scripts").normalize()
|
||||
//you can add own folders with decompiled smali code
|
||||
def dexes=smaliFolder.toFile()
|
||||
.listFiles( { f -> f.isDirectory() && f.name.startsWith("smali") } as FileFilter)
|
||||
.size()
|
||||
|
||||
versionFile {
|
||||
file = projectDir.toPath().resolve("src/main/assets/version.properties").toFile()
|
||||
@@ -50,19 +52,24 @@ android {
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled true
|
||||
buildConfigField 'String', 'APPCENTER_KEY', '""'
|
||||
proguardFile 'proguard-rules.pro'
|
||||
}
|
||||
rc {
|
||||
minifyEnabled true
|
||||
buildConfigField 'String', 'APPCENTER_KEY', '""'
|
||||
proguardFile 'proguard-rules.pro'
|
||||
}
|
||||
dev {
|
||||
initWith release
|
||||
minifyEnabled false
|
||||
buildConfigField 'String', 'APPCENTER_KEY', '""'
|
||||
}
|
||||
beta {
|
||||
initWith release
|
||||
minifyEnabled false
|
||||
buildConfigField 'String', 'APPCENTER_KEY', '""'
|
||||
}
|
||||
release {
|
||||
buildConfigField 'String', 'APPCENTER_KEY', '""'
|
||||
minifyEnabled true
|
||||
proguardFile 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
@@ -82,70 +89,44 @@ dependencies {
|
||||
implementation 'com.microsoft.appcenter:appcenter-crashes:5.0.1'
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
|
||||
implementation 'net.sourceforge.streamsupport:streamsupport-minifuture:1.7.4'
|
||||
implementation 'com.google.guava:guava:23.3-android'
|
||||
|
||||
implementation fileTree(dir: 'libs', include: ['*.aar'])
|
||||
compileOnly fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation 'com.google.guava:guava:23.3-android'
|
||||
}
|
||||
|
||||
task generateBuildTasks() {
|
||||
android.applicationVariants.all { variant ->
|
||||
variant.outputs.each { output ->
|
||||
def buildType = output.name.toString().capitalize()
|
||||
def lowerBuildType = buildType.toLowerCase()
|
||||
if(buildType=="Base")return
|
||||
task "exportDex$buildType"() {
|
||||
dependsOn('assemble' + buildType)
|
||||
doLast {
|
||||
try {
|
||||
var z = ""
|
||||
if (lowerBuildType != "debug") {
|
||||
z = "-unsigned"
|
||||
}
|
||||
|
||||
File moduleDir = projectDir
|
||||
ZipInputStream inputStream = new ZipInputStream(new FileInputStream(moduleDir.getAbsolutePath() + "/build/outputs/apk/$lowerBuildType/app-$lowerBuildType${z}.apk"))
|
||||
ZipFile file = new ZipFile(moduleDir.getAbsolutePath() + "/build/outputs/apk/$lowerBuildType/app-$lowerBuildType${z}.apk");
|
||||
ZipEntry entry
|
||||
while ((entry = inputStream.nextEntry) != null) {
|
||||
if (entry.getName().equals("classes.dex")) {
|
||||
print('classes.dex found!')
|
||||
|
||||
FileOutputStream outputStream = new FileOutputStream(new File(moduleDir.getAbsoluteFile(), "classes6.dex"))
|
||||
|
||||
byte[] buffer = new byte[1024]
|
||||
int len = 0
|
||||
while ((len = inputStream.read(buffer)) > 0) {
|
||||
outputStream.write(buffer, 0, len)
|
||||
}
|
||||
outputStream.close()
|
||||
}
|
||||
if (entry.getName().equals("classes2.dex")) {
|
||||
print('\nclasses2.dex found!')
|
||||
|
||||
FileOutputStream outputStream = new FileOutputStream(new File(moduleDir.getAbsoluteFile(), "classes7.dex"))
|
||||
|
||||
byte[] buffer = new byte[1024]
|
||||
int len = 0
|
||||
while ((len = inputStream.read(buffer)) > 0) {
|
||||
outputStream.write(buffer, 0, len)
|
||||
}
|
||||
outputStream.close()
|
||||
}
|
||||
}
|
||||
|
||||
for (ZipEntry e : Collections.list(file.entries())) {
|
||||
if (e.getName().endsWith("assets/version.properties")) {
|
||||
var is = file.getInputStream(e)
|
||||
FileOutputStream outputStream = new FileOutputStream(new File(moduleDir.getAbsoluteFile(), "version.properties"))
|
||||
|
||||
byte[] buffer = new byte[1024]
|
||||
int len = 0
|
||||
while ((len = is.read(buffer)) > 0) {
|
||||
outputStream.write(buffer, 0, len)
|
||||
}
|
||||
outputStream.close()
|
||||
|
||||
print('\nversion.properties found!')
|
||||
}
|
||||
def suffix=buildType.toLowerCase()
|
||||
String apkPath=projectDir.getAbsolutePath()+"/build/outputs/apk/$suffix/app-$suffix"
|
||||
def apk=new File(apkPath+"-unsigned.apk")
|
||||
if(!apk.exists())apk=new File(apkPath+".apk")
|
||||
def zip=new ZipFile(apk)
|
||||
def entries=zip.entries()
|
||||
def dexCounter=dexes
|
||||
while(entries.hasMoreElements())
|
||||
{
|
||||
def entry=entries.nextElement()
|
||||
String filename
|
||||
if(entry.name.matches("^classes(?:(?=\\d)2|)\\.dex\$"))filename="classes${++dexCounter}.dex"
|
||||
else if(entry.name=="assets/version.properties")filename="version.properties"
|
||||
else continue
|
||||
println("Exporting "+entry.name)
|
||||
def tmpFile=new File(projectDir,filename)
|
||||
def is=zip.getInputStream(entry)
|
||||
def fos=new FileOutputStream(tmpFile)
|
||||
def buff=new byte[0x800]
|
||||
int len
|
||||
while((len=is.read(buff))>0)fos.write(buff,0,len)
|
||||
is.close()
|
||||
fos.close()
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace()
|
||||
@@ -155,17 +136,16 @@ task generateBuildTasks() {
|
||||
task "prepareDexForMerge$buildType"(type: Copy) {
|
||||
dependsOn('exportDex' + buildType)
|
||||
// Remove comment for native lib build
|
||||
dependsOn('cargoBuild')
|
||||
//dependsOn('cargoBuild')
|
||||
into smaliFolder.toString()
|
||||
from(projectDir) {
|
||||
include 'classes6.dex'
|
||||
include 'classes7.dex'
|
||||
into '../smali'
|
||||
include "classes*.dex"
|
||||
}
|
||||
from(projectDir) {
|
||||
include 'version.properties'
|
||||
into 'assets'
|
||||
}
|
||||
// Remove comment for native lib build
|
||||
from('../native-effects/target/aarch64-linux-android/release'){
|
||||
include 'libnative_effects.so'
|
||||
into 'lib/arm64-v8a'
|
||||
@@ -174,15 +154,16 @@ task generateBuildTasks() {
|
||||
include 'libnative_effects.so'
|
||||
into 'lib/armeabi-v7a'
|
||||
}
|
||||
doLast {
|
||||
new File(projectDir, "classes6.dex").delete()
|
||||
new File(projectDir, "classes7.dex").delete()
|
||||
new File(projectDir, "version.properties").delete()
|
||||
}
|
||||
}
|
||||
task "cleanTemporaryFiles$buildType"(type:Delete)
|
||||
{
|
||||
delete fileTree(dir:projectDir,include:["*.dex","version.properties"])
|
||||
delete fileTree(dir:smaliFolder,include:['*.dex',"assets/version.properties"])
|
||||
}
|
||||
task "buildVTL$buildType"(type: Exec) {
|
||||
dependsOn('prepareDexForMerge' + buildType)
|
||||
workingDir(projectDir.parentFile)
|
||||
finalizedBy "cleanTemporaryFiles$buildType"
|
||||
if (Os.isFamily("unix") || Os.isFamily("mac")) {
|
||||
commandLine 'bash', '-c', './scripts/build.sh'
|
||||
} else {
|
||||
@@ -210,7 +191,6 @@ task generateBuildTasks() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
task generateRjava(type: Exec) {
|
||||
workingDir(projectDir.parentFile)
|
||||
if (Os.isFamily("unix") || Os.isFamily("mac"))
|
||||
|
||||
@@ -130,9 +130,9 @@ public class BinaryResourceValue implements SerializableResource {
|
||||
*/
|
||||
public static final int SIZE = 8;
|
||||
|
||||
private final int size;
|
||||
private final Type type;
|
||||
private final int data;
|
||||
public int size;
|
||||
public Type type;
|
||||
public int data;
|
||||
|
||||
public static BinaryResourceValue create(ByteBuffer buffer) {
|
||||
int size = (buffer.getShort() & 0xFFFF);
|
||||
|
||||
@@ -19661,6 +19661,9 @@ public final class R {
|
||||
public static final int cache_size = 0x7f12188d; // 2131892365
|
||||
public static final int cache_size_summ = 0x7f12188e; // 2131892366
|
||||
public static final int clear_all_cache = 0x7f12188f; // 2131892367
|
||||
public static final int invalidate_theme_cache_each_update_title = 0x7f121890; // 2131892368
|
||||
public static final int invertFilters = 0x7f121891; // 2131892369
|
||||
public static final int invertFilters_summ = 0x7f121892; // 2131892370
|
||||
}
|
||||
|
||||
public static final class style {
|
||||
|
||||
@@ -22,7 +22,7 @@ public class GcmHook {
|
||||
private static final String agent = String.format("Android-GCM/1.5 (%s %s)", Build.MODEL, Build.MODEL);
|
||||
private static KeyPair pair;
|
||||
private static int rid = 0;
|
||||
|
||||
|
||||
static {
|
||||
genNewKey();
|
||||
}
|
||||
|
||||
@@ -46,7 +46,10 @@ public class MainActivityInjector {
|
||||
NotificationChannels.createChannels();
|
||||
}
|
||||
|
||||
if (Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && ThemesManager.canApplyCustomAccent() && ThemesUtils.useNewColorEngine()) {
|
||||
if (Preferences.isNewBuild()
|
||||
&&!ThemesUtils.isMonetTheme()
|
||||
&&ThemesManager.canApplyCustomAccent())
|
||||
{
|
||||
Preferences.updateBuildNumber();
|
||||
updateBinsAndTmpArchive(activity);
|
||||
}
|
||||
|
||||
@@ -6,7 +6,9 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.vk.core.preference.Preference;
|
||||
import com.vk.discover.DiscoverItemDecorator;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
import static java.lang.Long.MAX_VALUE;
|
||||
import static ru.vtosters.hooks.other.Preferences.*;
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package ru.vtosters.hooks;
|
||||
|
||||
import androidx.core.util.Pair;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import ru.vtosters.lite.utils.RenameTool;
|
||||
|
||||
public class RenameHook {
|
||||
public static void injectIntoJson(JSONObject obj) throws JSONException {
|
||||
|
||||
@@ -292,12 +292,16 @@ public class Preferences {
|
||||
}
|
||||
|
||||
public static boolean isNewBuild() {
|
||||
try {
|
||||
return getPreferences().getLong("setupTime", 0L) != AndroidUtils.getGlobalContext().getPackageManager().getPackageInfo(AndroidUtils.getPackageName(), 0).lastUpdateTime;
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
if(Preferences.getBoolValue("invalidate_theme_cache_each_update",true))
|
||||
try {
|
||||
return AndroidUtils.getGlobalContext()
|
||||
.getPackageManager()
|
||||
.getPackageInfo(AndroidUtils.getPackageName(), 0)
|
||||
.lastUpdateTime != getPreferences().getLong("setupTime", 0L);
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void updateBuildNumber() {
|
||||
|
||||
@@ -16,12 +16,10 @@ import android.webkit.WebView;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.ColorUtils;
|
||||
import com.vk.articles.preload.WebCachePreloader;
|
||||
import com.vk.core.drawable.RecoloredDrawable;
|
||||
import com.vk.core.preference.Preference;
|
||||
import com.vk.core.ui.themes.MilkshakeHelper;
|
||||
import com.vk.core.ui.themes.VKTheme;
|
||||
import com.vk.core.ui.themes.VKThemeHelper;
|
||||
@@ -48,10 +46,6 @@ public class ThemesUtils {
|
||||
}
|
||||
} // Apply VKTheme and ImTheme (hard applying without dynamic theme changing)
|
||||
|
||||
public static boolean isCustomAccentEnabled() {
|
||||
return ThemesUtils.isMonetTheme() || !useNewColorEngine();
|
||||
}
|
||||
|
||||
public static ColorStateList getAccenedColorStateList() {
|
||||
return ColorStateList.valueOf(getAccentColor());
|
||||
}
|
||||
@@ -65,7 +59,7 @@ public class ThemesUtils {
|
||||
activity = LifecycleUtils.getCurrentActivity();
|
||||
}
|
||||
VKThemeHelper.theme(theme, activity, fl);
|
||||
ThemesCore.clear();
|
||||
if (isMonetTheme()) ThemesCore.clear();
|
||||
if (restartActivity) activity.recreate();
|
||||
ThemeTracker.a();
|
||||
WebViewColoringUtils.isLoaded = false;
|
||||
@@ -85,13 +79,8 @@ public class ThemesUtils {
|
||||
return getBoolValue("amoledtheme", false);
|
||||
}
|
||||
|
||||
public static boolean useNewColorEngine() {
|
||||
return getBoolValue("useNewColorEngine", false);
|
||||
}
|
||||
|
||||
public static int getAccentColor() {
|
||||
var color = Preferences.getPreferences().getInt("accent_color", getColorFromAttr(R.attr.accent));
|
||||
return color == 0 || useNewColorEngine() || isMonetTheme() ? getColorFromAttr(R.attr.accent) : color;
|
||||
return getColorFromAttr(R.attr.accent);
|
||||
} // Color accent
|
||||
|
||||
//region Used for migrating accent color to new version
|
||||
@@ -309,7 +298,7 @@ public class ThemesUtils {
|
||||
} // Recolor drawable to accent color
|
||||
|
||||
public static Drawable recolorToolbarDrawable(Drawable drawable) {
|
||||
if (!ThemesUtils.isCustomAccentEnabled()) return drawable;
|
||||
if (!ThemesUtils.isMonetTheme()) return drawable;
|
||||
if (drawable == null) return null;
|
||||
return new RecoloredDrawable(drawable, (ThemesUtils.isMilkshake() && !ThemesUtils.isDarkTheme()) ? ThemesUtils.getAccentColor() : ThemesUtils.getHeaderText());
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package ru.vtosters.hooks.ssfs;
|
||||
|
||||
import com.vk.core.dialogs.alert.VkAlertDialog;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import ru.vtosters.hooks.other.Preferences;
|
||||
import ru.vtosters.lite.ssfs.ImBanner;
|
||||
|
||||
@@ -4,8 +4,8 @@ import android.text.TextUtils;
|
||||
|
||||
public class TransportStream {
|
||||
|
||||
private String mKeyUri;
|
||||
private final String mMediaSegmentUri;
|
||||
private String mKeyUri;
|
||||
private String mMediaSegmentName;
|
||||
|
||||
public TransportStream(String baseURI, String mediaSegmentName) {
|
||||
|
||||
@@ -15,10 +15,9 @@ public class VKM3UParser {
|
||||
//Playlist types
|
||||
static public int PLAYLIST_TYPE_VOD = 0;
|
||||
static public int PLAYLIST_TYPE_EVENT = 1;
|
||||
|
||||
private final String mData;
|
||||
//region Extended M3U global extensions
|
||||
public List<TransportStream> mTransportStreams = new ArrayList<>();
|
||||
private final String mData;
|
||||
/**
|
||||
* @see <a href="https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.1.2">EXT-X-VERSION</a>
|
||||
**/
|
||||
|
||||
@@ -19,8 +19,8 @@ import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import java.io.IOException;
|
||||
|
||||
import static ru.vtosters.hooks.DateHook.getLocale;
|
||||
import static ru.vtosters.hooks.other.Preferences.getBoolValue;
|
||||
import static ru.vtosters.hooks.GroupsCatalogInjector.injectIntoCatalog;
|
||||
import static ru.vtosters.hooks.other.Preferences.getBoolValue;
|
||||
import static ru.vtosters.lite.music.cache.helpers.PlaylistHelper.*;
|
||||
import static ru.vtosters.lite.proxy.ProxyUtils.getApi;
|
||||
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserId;
|
||||
|
||||
@@ -166,7 +166,7 @@ public class ThemesCore {
|
||||
}
|
||||
|
||||
public static boolean hasThemedAttr(Context context, int attrID) {
|
||||
if (ThemesUtils.isCustomAccentEnabled()) {
|
||||
if (ThemesUtils.isMonetTheme()) {
|
||||
if (Preferences.getBoolValue("logColors", false)) {
|
||||
try {
|
||||
Log.d(TAG, "Requesting color by attr " + context.getResources().getResourceName(attrID));
|
||||
|
||||
@@ -23,7 +23,7 @@ public class ThemesHacks {
|
||||
}
|
||||
|
||||
public static int getHackedColor(@NonNull Context context, @ColorRes int color) {
|
||||
if (ThemesUtils.isCustomAccentEnabled()) {
|
||||
if (ThemesUtils.isMonetTheme()) {
|
||||
if (Preferences.getBoolValue("logColors", false)) {
|
||||
try {
|
||||
Log.d("ThemesCore", "Requesting color by color " + context.getResources().getResourceName(color));
|
||||
|
||||
@@ -119,7 +119,7 @@ public class ThemesManager {
|
||||
initPaths(app);
|
||||
validateModApk();
|
||||
|
||||
if (!Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && canApplyCustomAccent() && ThemesUtils.useNewColorEngine()) {
|
||||
if (!Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && canApplyCustomAccent()) {
|
||||
ResourcesLoader.init(app);
|
||||
ResourcesLoader.load(app, modApk.getAbsolutePath(), false);
|
||||
}
|
||||
@@ -161,8 +161,7 @@ public class ThemesManager {
|
||||
final var arscEntry = apk.getEntry("resources.arsc");
|
||||
final var arscBis = new BufferedInputStream(apk.getInputStream(arscEntry));
|
||||
final var arsc = BinaryResourceFile.fromInputStream(arscBis);
|
||||
if (!ArscEditor.changeColors(arsc, ACCENT_COLORS, accentColor))
|
||||
throw new IllegalStateException("Not all colors have been changed");
|
||||
ArscEditor.changeColors(arsc, ACCENT_COLORS, accentColor);
|
||||
|
||||
try (
|
||||
final var zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(modApk)))
|
||||
|
||||
@@ -21,7 +21,7 @@ public class ViewInjector {
|
||||
}
|
||||
|
||||
public static View inject(View view, int i, boolean z) {
|
||||
if (ThemesUtils.isCustomAccentEnabled()) {
|
||||
if (ThemesUtils.isMonetTheme()) {
|
||||
for (BaseHook hook : hooks) {
|
||||
hook.inject(view, i, z);
|
||||
}
|
||||
|
||||
@@ -1,37 +1,38 @@
|
||||
package ru.vtosters.lite.themes.utils;
|
||||
|
||||
import com.google.devrel.gmscore.tools.apk.arsc.*;
|
||||
import com.google.devrel.gmscore.tools.apk.arsc.BinaryResourceFile;
|
||||
import com.google.devrel.gmscore.tools.apk.arsc.BinaryResourceValue;
|
||||
import com.google.devrel.gmscore.tools.apk.arsc.ResourceTableChunk;
|
||||
|
||||
public class ArscEditor {
|
||||
|
||||
public static boolean changeColors(BinaryResourceFile arsc, int[] colorIds, int color /*int[] colors*/) {
|
||||
int q = 0;
|
||||
public static void changeColors(BinaryResourceFile arsc, int[] colorIds, int color) {
|
||||
for (var chunk : arsc.getChunks()) {
|
||||
final var resourceTableChunk = (ResourceTableChunk) chunk;
|
||||
|
||||
for (PackageChunk packageChunk : resourceTableChunk.getPackages()) {
|
||||
for (TypeSpecChunk typeSpecChunk : packageChunk.getTypeSpecChunks()) {
|
||||
for (TypeChunk typeChunk : packageChunk.getTypeChunks(typeSpecChunk.getId())) {
|
||||
if (!"color".equals(typeChunk.getTypeName())) continue;
|
||||
|
||||
for (var entry : typeChunk.getEntries().entrySet()) {
|
||||
if (entry.getValue().isComplex()) continue;
|
||||
|
||||
final var id = BinaryResourceIdentifier.create(packageChunk.getId(), typeSpecChunk.getId(), entry.getKey());
|
||||
|
||||
for (int colorId : colorIds) {
|
||||
if (colorId != id.resId()) continue;
|
||||
|
||||
final var value = entry.getValue();
|
||||
value.updateValue(new BinaryResourceValue(8, value.value().type(), color /*colors[i]*/));
|
||||
++q;
|
||||
final var resTableChunk = (ResourceTableChunk) chunk;
|
||||
for (var packageChunk : resTableChunk.getPackages()) {
|
||||
for (var typeChunk : packageChunk.getTypeChunks("color")) {
|
||||
for (var entry : typeChunk.getEntries().entrySet()) {
|
||||
final var value = entry.getValue();
|
||||
if (value.isComplex()) continue;
|
||||
final var binValue = value.value();
|
||||
if (!isColorResourceValue(binValue)) continue;
|
||||
final var resId = packageChunk.getId() << 24 | typeChunk.getId() << 16 | entry.getKey();
|
||||
for (var colodId : colorIds) {
|
||||
if (resId == colodId) {
|
||||
binValue.data = color;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return q == colorIds.length;
|
||||
private static boolean isColorResourceValue(BinaryResourceValue value) {
|
||||
return value.type == BinaryResourceValue.Type.INT_COLOR_ARGB8
|
||||
|| value.type == BinaryResourceValue.Type.INT_COLOR_RGB8
|
||||
|| value.type == BinaryResourceValue.Type.INT_COLOR_ARGB4
|
||||
|| value.type == BinaryResourceValue.Type.INT_COLOR_RGB4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ public class RecolorUtils {
|
||||
}
|
||||
|
||||
public static int recolorHexColor(int i) {
|
||||
if (!ThemesUtils.isCustomAccentEnabled()) return i;
|
||||
if (!ThemesUtils.isMonetTheme()) return i;
|
||||
var accented = ColorReferences.isAccentedColor(i);
|
||||
var mutedaccented = ColorReferences.isMutedAccentedColor(i);
|
||||
return (accented || mutedaccented) ? (accented ? ThemesUtils.getAccentColor() : ThemesUtils.getMutedAccentColor()) : i;
|
||||
@@ -57,7 +57,7 @@ public class RecolorUtils {
|
||||
|
||||
@SuppressLint("UseCompatLoadingForColorStateLists")
|
||||
public static ColorStateList themeCSL(Context context, int color) {
|
||||
if (!ThemesUtils.isCustomAccentEnabled()) {
|
||||
if (!ThemesUtils.isMonetTheme()) {
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
return context.getColorStateList(color);
|
||||
} else {
|
||||
@@ -83,7 +83,7 @@ public class RecolorUtils {
|
||||
} // Recolor ColorStateList
|
||||
|
||||
public static ColorStateList themeCSL(ColorStateList csl) {
|
||||
if (!ThemesUtils.isCustomAccentEnabled()) return csl;
|
||||
if (!ThemesUtils.isMonetTheme()) return csl;
|
||||
|
||||
try {
|
||||
int unsel = csl.getColorForState(new int[]{-android.R.attr.state_selected}, Color.BLACK);
|
||||
|
||||
@@ -18,6 +18,7 @@ import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.LayoutUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,6 +36,7 @@ public class CategorizedAdapter<T> extends RecyclerView.Adapter<CategorizedAdapt
|
||||
private final List<T> mSelectedItems;
|
||||
private final List<T> mDisabledItems;
|
||||
private final List<T> mUnmovedItems;
|
||||
final private List<T> mExceptions = new ArrayList<>();
|
||||
private final IViewHolderBinder mBinder;
|
||||
|
||||
// Min and max counts
|
||||
@@ -48,6 +50,11 @@ public class CategorizedAdapter<T> extends RecyclerView.Adapter<CategorizedAdapt
|
||||
this.mBinder = binder;
|
||||
}
|
||||
|
||||
public void setExceptions(T... exceptions) {
|
||||
mExceptions.clear();
|
||||
mExceptions.addAll(Arrays.asList(exceptions));
|
||||
}
|
||||
|
||||
public void setMinAndMaxCounts(int min, int max) {
|
||||
this.mMinSelectedItems = min;
|
||||
this.mMaxSelectedItems = max;
|
||||
@@ -173,16 +180,20 @@ public class CategorizedAdapter<T> extends RecyclerView.Adapter<CategorizedAdapt
|
||||
public boolean onItemMove(int fromPosition, int toPosition) {
|
||||
if (toPosition == 0 || isUnmovedItem(toPosition))
|
||||
return false;
|
||||
|
||||
switch (getTabType(fromPosition)) {
|
||||
case SELECTED_STATE -> {
|
||||
if (getTabType(toPosition) == DISABLED_STATE
|
||||
&& mSelectedItems.size() == mMinSelectedItems)
|
||||
if ((getTabType(toPosition) == DISABLED_STATE
|
||||
&& mSelectedItems.size() == mMinSelectedItems))
|
||||
return false;
|
||||
if (getItemViewType(toPosition) == CATEGORY_TITLE)
|
||||
if (getItemViewType(toPosition) == CATEGORY_TITLE) {
|
||||
if (mExceptions.size() > 0) {
|
||||
int q = 0;
|
||||
for (var ex : mExceptions)
|
||||
if (mSelectedItems.contains(ex)) ++q;
|
||||
if (q == 1) return false;
|
||||
}
|
||||
mDisabledItems.add(0, mSelectedItems.remove(fromPosition - 1));
|
||||
else
|
||||
Collections.swap(mSelectedItems, fromPosition - 1, toPosition - 1);
|
||||
} else Collections.swap(mSelectedItems, fromPosition - 1, toPosition - 1);
|
||||
}
|
||||
case DISABLED_STATE -> {
|
||||
if (getTabType(toPosition) == SELECTED_STATE
|
||||
@@ -198,7 +209,6 @@ public class CategorizedAdapter<T> extends RecyclerView.Adapter<CategorizedAdapt
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
notifyItemMoved(fromPosition, toPosition);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -59,71 +59,7 @@ public class DockBarEditorManager {
|
||||
: sInstance;
|
||||
}
|
||||
|
||||
private void init() {
|
||||
if (vkme()) {
|
||||
mSelectedTabs.add(getTabByTag("tab_settings"));
|
||||
if (vkme_notifs()) {
|
||||
if (milkshake()) {
|
||||
mSelectedTabs.add(getTabByTag("tab_feedback"));
|
||||
} else {
|
||||
mSelectedTabs.add(getTabByTag("tab_friends"));
|
||||
}
|
||||
}
|
||||
mSelectedTabs.add(getTabByTag("tab_messages"));
|
||||
mSelectedTabs.add(getTabByTag("tab_profile"));
|
||||
return;
|
||||
}
|
||||
|
||||
checkOldConfig();
|
||||
|
||||
var selectedTabsTags = getPreferences()
|
||||
.getString("dockbar_tabs",
|
||||
"tab_news,tab_superapps,tab_messages,tab_friends,tab_profile")
|
||||
.split(",");
|
||||
parseSelectedTabs(selectedTabsTags);
|
||||
}
|
||||
|
||||
private void checkOldConfig() {
|
||||
File config = new File(getGlobalContext().getFilesDir(), "dockbar.json");
|
||||
if (config.exists()) config.deleteOnExit();
|
||||
}
|
||||
|
||||
private void parseSelectedTabs(String[] selectedTabsTags) {
|
||||
var allTags = new ArrayList<>(ALL_TAGS);
|
||||
|
||||
for (String tag : selectedTabsTags) {
|
||||
mSelectedTabs.add(getTabByTag(tag));
|
||||
allTags.remove(tag);
|
||||
}
|
||||
|
||||
for (String tag : allTags) {
|
||||
mDisabledTabs.add(getTabByTag(tag));
|
||||
}
|
||||
}
|
||||
|
||||
public void save() {
|
||||
var sb = new StringBuilder();
|
||||
for (DockBarTab tab : mSelectedTabs)
|
||||
sb.append(tab.tag).append(",");
|
||||
getPreferences().edit().putString("dockbar_tabs", sb.toString()).commit();
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
Preferences.getPreferences()
|
||||
.edit()
|
||||
.putString("dockbar_tabs", "tab_news,tab_superapps,tab_messages,tab_friends,tab_profile")
|
||||
.commit();
|
||||
}
|
||||
|
||||
public List<DockBarTab> getSelectedTabs() {
|
||||
return mSelectedTabs;
|
||||
}
|
||||
|
||||
public List<DockBarTab> getDisabledTabs() {
|
||||
return mDisabledTabs;
|
||||
}
|
||||
|
||||
private DockBarTab getTabByTag(String tag) {
|
||||
public static DockBarTab getTabByTag(String tag) {
|
||||
return switch (tag) {
|
||||
case "tab_news" -> DockBarTab.valuesOf(
|
||||
"tab_news",
|
||||
@@ -235,4 +171,68 @@ public class DockBarEditorManager {
|
||||
useNewSettings());
|
||||
};
|
||||
}
|
||||
|
||||
private void init() {
|
||||
if (vkme()) {
|
||||
mSelectedTabs.add(getTabByTag("tab_settings"));
|
||||
if (vkme_notifs()) {
|
||||
if (milkshake()) {
|
||||
mSelectedTabs.add(getTabByTag("tab_feedback"));
|
||||
} else {
|
||||
mSelectedTabs.add(getTabByTag("tab_friends"));
|
||||
}
|
||||
}
|
||||
mSelectedTabs.add(getTabByTag("tab_messages"));
|
||||
mSelectedTabs.add(getTabByTag("tab_profile"));
|
||||
return;
|
||||
}
|
||||
|
||||
checkOldConfig();
|
||||
|
||||
var selectedTabsTags = getPreferences()
|
||||
.getString("dockbar_tabs",
|
||||
"tab_news,tab_superapps,tab_messages,tab_friends,tab_profile")
|
||||
.split(",");
|
||||
parseSelectedTabs(selectedTabsTags);
|
||||
}
|
||||
|
||||
private void checkOldConfig() {
|
||||
File config = new File(getGlobalContext().getFilesDir(), "dockbar.json");
|
||||
if (config.exists()) config.deleteOnExit();
|
||||
}
|
||||
|
||||
private void parseSelectedTabs(String[] selectedTabsTags) {
|
||||
var allTags = new ArrayList<>(ALL_TAGS);
|
||||
|
||||
for (String tag : selectedTabsTags) {
|
||||
mSelectedTabs.add(getTabByTag(tag));
|
||||
allTags.remove(tag);
|
||||
}
|
||||
|
||||
for (String tag : allTags) {
|
||||
mDisabledTabs.add(getTabByTag(tag));
|
||||
}
|
||||
}
|
||||
|
||||
public void save() {
|
||||
var sb = new StringBuilder();
|
||||
for (DockBarTab tab : mSelectedTabs)
|
||||
sb.append(tab.tag).append(",");
|
||||
getPreferences().edit().putString("dockbar_tabs", sb.toString()).commit();
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
Preferences.getPreferences()
|
||||
.edit()
|
||||
.putString("dockbar_tabs", "tab_news,tab_superapps,tab_messages,tab_friends,tab_profile")
|
||||
.commit();
|
||||
}
|
||||
|
||||
public List<DockBarTab> getSelectedTabs() {
|
||||
return mSelectedTabs;
|
||||
}
|
||||
|
||||
public List<DockBarTab> getDisabledTabs() {
|
||||
return mDisabledTabs;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,12 +168,18 @@ public class DataSettingsFragment extends TrackedMaterialPreferenceToolbarFragme
|
||||
|
||||
var pref = Preferences.getPreferences().getString("autoclearcache", "Default");
|
||||
switch (pref) {
|
||||
case "Default" -> findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_disabled));
|
||||
case "100mb" -> findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_100mb));
|
||||
case "500mb" -> findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_500mb));
|
||||
case "1gb" -> findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_1gb));
|
||||
case "2gb" -> findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_2gb));
|
||||
case "5gb" -> findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_5gb));
|
||||
case "Default" ->
|
||||
findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_disabled));
|
||||
case "100mb" ->
|
||||
findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_100mb));
|
||||
case "500mb" ->
|
||||
findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_500mb));
|
||||
case "1gb" ->
|
||||
findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_1gb));
|
||||
case "2gb" ->
|
||||
findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_2gb));
|
||||
case "5gb" ->
|
||||
findPreference("autoclearcache_btn").setSummary(requireContext().getString(com.vtosters.lite.R.string.cache_5gb));
|
||||
}
|
||||
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), AndroidUtils.getString("accounts"));
|
||||
|
||||
@@ -82,6 +82,9 @@ public class DockBarEditorFragment extends BaseToolbarFragment {
|
||||
holder.bindMovingItem(tab.iconID, tab.titleID);
|
||||
});
|
||||
adapter.setMinAndMaxCounts(DockBarEditorManager.MIN_SELECTED_TABS, DockBarEditorManager.MAX_SELECTED_TABS);
|
||||
adapter.setExceptions(
|
||||
DockBarEditorManager.getTabByTag("tab_profile"),
|
||||
DockBarEditorManager.getTabByTag("")/*settings*/);
|
||||
|
||||
var recyclerView = new RecyclerView(requireContext());
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
|
||||
@@ -1,35 +1,16 @@
|
||||
package ru.vtosters.lite.ui.fragments;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.*;
|
||||
import android.os.Bundle;
|
||||
import android.util.TypedValue;
|
||||
import android.webkit.WebView;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.RadioGroup;
|
||||
import android.widget.Toast;
|
||||
import androidx.appcompat.view.ContextThemeWrapper;
|
||||
import b.h.g.m.FileUtils;
|
||||
import com.vk.auth.api.VKAccount;
|
||||
import com.vk.core.dialogs.alert.VkAlertDialog;
|
||||
import com.vk.core.util.ToastUtils;
|
||||
import com.vk.im.engine.ImEngine1;
|
||||
import com.vk.im.engine.ImEngineExt;
|
||||
import com.vk.im.ui.providers.audiomsg.ImAudioMsgPlayerProvider;
|
||||
import com.vk.im.ui.providers.audiomsg.PlayerActionSources;
|
||||
import com.vk.imageloader.VKImageLoader;
|
||||
import com.vk.media.player.cache.AutoPlayCacheHolder;
|
||||
import com.vk.mediastore.MediaStorage;
|
||||
import com.vk.pushes.PushSubscriber;
|
||||
import com.vk.stickers.Stickers;
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.auth.VKAccountManager;
|
||||
import com.vtosters.lite.im.ImEngineProvider;
|
||||
import ru.vtosters.hooks.GmsHook;
|
||||
import ru.vtosters.hooks.SwitchHook;
|
||||
import ru.vtosters.hooks.other.Preferences;
|
||||
import ru.vtosters.hooks.other.ThemesUtils;
|
||||
import ru.vtosters.lite.deviceinfo.DeviceInfoCollector;
|
||||
import ru.vtosters.lite.ssfs.UsersList;
|
||||
import ru.vtosters.lite.ui.activities.VKAdminTokenActivity;
|
||||
@@ -148,7 +129,6 @@ public class OtherFragment extends TrackedMaterialPreferenceToolbarFragment {
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void copyText(String src) {
|
||||
var manager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
manager.setPrimaryClip(ClipData.newPlainText("MBH-ST", src));
|
||||
|
||||
@@ -43,15 +43,15 @@ public class ThemesFragment extends TrackedMaterialPreferenceToolbarFragment {
|
||||
|
||||
findPreference("systememoji").setSummary(AndroidUtils.getGlobalContext().getString(R.string.systememojisum) + " \uD83D\uDE00\uD83D\uDE01\uD83E\uDD11\uD83E\uDD75\uD83D\uDC4D");
|
||||
|
||||
findPreference("useNewColorEngine").setVisible(Preferences.dev());
|
||||
|
||||
var invalidateThemeCache = findPreference("invalidate_theme_cache");
|
||||
if (ThemesUtils.getReservedAccent() != Color.TRANSPARENT && Preferences.dev() && ThemesUtils.useNewColorEngine())
|
||||
if (ThemesUtils.getReservedAccent() != Color.TRANSPARENT && Preferences.dev()) {
|
||||
invalidateThemeCache.setOnPreferenceClickListener(preference -> {
|
||||
setAccentColor(ThemesUtils.getReservedAccent());
|
||||
return true;
|
||||
});
|
||||
else invalidateThemeCache.setVisible(false);
|
||||
} else {
|
||||
invalidateThemeCache.setVisible(false);
|
||||
}
|
||||
|
||||
var navBarPreference = findPreference("navbar");
|
||||
navBarPreference.setOnPreferenceClickListener(preference -> {
|
||||
@@ -156,12 +156,8 @@ public class ThemesFragment extends TrackedMaterialPreferenceToolbarFragment {
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.reset, (dialog, which) -> {
|
||||
if (ThemesUtils.useNewColorEngine()) {
|
||||
ThemesManager.deleteModification();
|
||||
ThemesUtils.reserveAccentColor(Color.TRANSPARENT, false);
|
||||
} else {
|
||||
ThemesUtils.setCustomAccentColor(0, false);
|
||||
}
|
||||
ThemesManager.deleteModification();
|
||||
ThemesUtils.reserveAccentColor(Color.TRANSPARENT, false);
|
||||
restart();
|
||||
})
|
||||
.setPositiveButton(R.string.cancel, null)
|
||||
@@ -207,35 +203,29 @@ public class ThemesFragment extends TrackedMaterialPreferenceToolbarFragment {
|
||||
}
|
||||
|
||||
void setAccentColor(int color) {
|
||||
if (ThemesUtils.useNewColorEngine()) {
|
||||
final VKProgressDialog dialog = new VKProgressDialog(requireContext());
|
||||
dialog.setCancelable(false);
|
||||
dialog.setMessage(AndroidUtils.getString("applying_accent") + "...");
|
||||
dialog.show();
|
||||
final VKProgressDialog dialog = new VKProgressDialog(requireContext());
|
||||
dialog.setCancelable(false);
|
||||
dialog.setMessage(AndroidUtils.getString("applying_accent") + "...");
|
||||
dialog.show();
|
||||
|
||||
VTExecutors.getIoExecutor().execute(() -> {
|
||||
try {
|
||||
ThemesUtils.reserveAccentColor(color, true);
|
||||
ThemesManager.generateModApk(color);
|
||||
requireActivity().runOnUiThread(this::restart);
|
||||
} catch (Throwable e) {
|
||||
Log.e("ThemesFragment", e.getMessage());
|
||||
ThemesManager.deleteModification();
|
||||
requireActivity().runOnUiThread(() -> {
|
||||
dialog.dismiss();
|
||||
new VkAlertDialog.Builder(requireContext())
|
||||
.setTitle(AndroidUtils.getString("error"))
|
||||
.setMessage(AndroidUtils.getString("error_applying_accent") + ":\n" + e)
|
||||
.setPositiveButton("OK", null)
|
||||
.show();
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
ThemesUtils.setCustomAccentColor(color, false);
|
||||
ThemesCore.setThemedColors(color);
|
||||
restart();
|
||||
}
|
||||
VTExecutors.getIoExecutor().execute(() -> {
|
||||
try {
|
||||
ThemesUtils.reserveAccentColor(color, true);
|
||||
ThemesManager.generateModApk(color);
|
||||
requireActivity().runOnUiThread(this::restart);
|
||||
} catch (Throwable e) {
|
||||
Log.e("ThemesFragment", e.getMessage());
|
||||
ThemesManager.deleteModification();
|
||||
requireActivity().runOnUiThread(() -> {
|
||||
dialog.dismiss();
|
||||
new VkAlertDialog.Builder(requireContext())
|
||||
.setTitle(AndroidUtils.getString("error"))
|
||||
.setMessage(AndroidUtils.getString("error_applying_accent") + ":\n" + e)
|
||||
.setPositiveButton("OK", null)
|
||||
.show();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void restart() {
|
||||
|
||||
@@ -31,4 +31,9 @@ public class DockBarTab {
|
||||
Class<?> fragmentClass) {
|
||||
return new DockBarTab(tag, iconID, titleID, resID, fragmentClass);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object arg) {
|
||||
return this.id == ((DockBarTab) arg).id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,4 +13,10 @@ public class SuperAppItem {
|
||||
public static SuperAppItem valuesOf(String type, String title) {
|
||||
return new SuperAppItem(type, title);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object arg) {
|
||||
var item = (SuperAppItem) arg;
|
||||
return this.type.equals(item.type) && this.title.equals(item.title);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ import ru.vtosters.hooks.other.Preferences;
|
||||
import ru.vtosters.lite.foaf.FoafBase;
|
||||
import ru.vtosters.lite.utils.AccountManagerUtils;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.RenameTool;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
@@ -5,12 +5,8 @@ import android.graphics.BitmapFactory;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import com.vk.im.engine.h;
|
||||
import com.vtosters.lite.R;
|
||||
import ru.vtosters.hooks.other.Preferences;
|
||||
import ru.vtosters.hooks.other.ThemesUtils;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import vigo.sdk.Log;
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ buildscript {
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:8.0.2'
|
||||
classpath 'com.android.tools.build:gradle:7.4.2'
|
||||
classpath 'org.mozilla.rust-android-gradle:plugin:0.9.3'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#Tue Aug 16 21:49:57 MSK 2022
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
@@ -22,9 +22,6 @@ if "%ERRORLEVEL%" == "0" (
|
||||
echo %ESC%[31mFailed%ESC%[0m
|
||||
exit /B 1
|
||||
)
|
||||
del classes6.dex
|
||||
del classes7.dex
|
||||
del assets\version.properties
|
||||
|
||||
echo.
|
||||
echo %ESC%[1;4mSign apk...%ESC%[0m
|
||||
|
||||
+1
-5
@@ -33,8 +33,4 @@ cd ../scripts
|
||||
./apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android ../scripts/VTLite.apk
|
||||
check_result
|
||||
|
||||
echo -e "${BOLD}VTosters Lite успешно собран! APK находится в папке scripts${NC}"
|
||||
|
||||
cd ../smali
|
||||
rm classes6.dex
|
||||
rm classes7.dex
|
||||
echo -e "${BOLD}VTosters Lite успешно собран! APK находится в папке scripts${NC}"
|
||||
@@ -57,6 +57,7 @@ cпocоб зaрaбoтать
|
||||
В закрепленном комментарии
|
||||
В Закрепленном комментарии
|
||||
В закрепленном Комментарии
|
||||
в комментариях
|
||||
Успей подать заявку
|
||||
Успей Подать Заявку
|
||||
Успей подать Заявку
|
||||
@@ -94,6 +95,6 @@ cкорее подписывайся
|
||||
Подписывайтесь👇
|
||||
Подписывайся👇
|
||||
ссылка в комментариях
|
||||
в комментариях👇
|
||||
👉https://
|
||||
👉http://
|
||||
👉http://
|
||||
Ссылка удалится через часов
|
||||
@@ -7012,6 +7012,7 @@
|
||||
|
||||
<string name="datasettings_title">Налады дадзеных прыкладання</string>
|
||||
<string name="invalidate_theme_cache_title">Інвалідацыя кэша тэмы</string>
|
||||
<string name="invalidate_theme_cache_each_update_title">Ачыстка кэша тэмы пасля абнаўлення для прадухілення праблем з акцэнтамі</string>
|
||||
|
||||
<string name="useCustomPrefsStyle_title">Выкарыстоўваць новыя тумблеры</string>
|
||||
<string name="useCustomPrefsStyle_summ">Больш сучасны і стыльны выгляд тумблераў у наладах</string>
|
||||
|
||||
@@ -6394,6 +6394,7 @@
|
||||
|
||||
<string name="datasettings_title">Настройки данных приложения</string>
|
||||
<string name="invalidate_theme_cache_title">Инвалидация кэша темы</string>
|
||||
<string name="invalidate_theme_cache_each_update_title">Очистка кэша темы после обновления для предотвращения проблем с акцентами</string>
|
||||
|
||||
<string name="useCustomPrefsStyle_title">Использовать новые переключатели</string>
|
||||
<string name="useCustomPrefsStyle_summ">Более современный и стильный вид тумблеров в настройках</string>
|
||||
|
||||
@@ -6319,6 +6319,7 @@
|
||||
|
||||
<string name="datasettings_title">Налаштування даних додатку</string>
|
||||
<string name="invalidate_theme_cache_title">Інвалідація кешу теми</string>
|
||||
<string name="invalidate_theme_cache_each_update_title">Очищення кешу теми після оновлення для запобігання проблем з акцентами</string>
|
||||
|
||||
<string name="useCustomPrefsStyle_title">Використовувати нові перемикачі</string>
|
||||
<string name="useCustomPrefsStyle_summ">Більш сучасний і стильний вигляд тумблерів у налаштуваннях</string>
|
||||
|
||||
@@ -527,9 +527,9 @@
|
||||
<item name="action_sheet_action_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="action_sheet_separator">@android:color/system_neutral1_100</item>
|
||||
<item name="activity_indicator_tint">@android:color/system_neutral1_600</item>
|
||||
<item name="attach_picker_tab_active_background">@android:color/system_neutral1_100</item>
|
||||
<item name="attach_picker_tab_active_icon">@android:color/system_neutral1_900</item>
|
||||
<item name="attach_picker_tab_active_text">@android:color/system_neutral1_100</item>
|
||||
<item name="attach_picker_tab_active_background">?accent</item>
|
||||
<item name="attach_picker_tab_active_icon">@android:color/system_neutral1_1000</item>
|
||||
<item name="attach_picker_tab_active_text">?accent</item>
|
||||
<item name="attach_picker_tab_inactive_background">@android:color/system_neutral1_800</item>
|
||||
<item name="attach_picker_tab_inactive_icon">@android:color/system_neutral1_100</item>
|
||||
<item name="attach_picker_tab_inactive_text">@android:color/system_neutral1_500</item>
|
||||
@@ -547,27 +547,27 @@
|
||||
<item name="button_commerce_foreground_disabled">#66ffffff</item>
|
||||
<item name="button_muted_background">@android:color/system_neutral1_800</item>
|
||||
<item name="button_muted_background_disabled">#662c2d2e</item>
|
||||
<item name="button_muted_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="button_muted_foreground">?accent</item>
|
||||
<item name="button_muted_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="button_outline_border">?background_keyboard</item>
|
||||
<item name="button_outline_border">?accent</item>
|
||||
<item name="button_outline_border_disabled">#66e1e3e6</item>
|
||||
<item name="button_outline_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="button_outline_foreground">?accent</item>
|
||||
<item name="button_outline_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="button_primary_background">@android:color/system_neutral1_100</item>
|
||||
<item name="button_primary_background">?accent</item>
|
||||
<item name="button_primary_background_disabled">#66e1e3e6</item>
|
||||
<item name="button_primary_foreground">@android:color/system_neutral1_900</item>
|
||||
<item name="button_primary_foreground_disabled">#6619191a</item>
|
||||
<item name="button_secondary_background">@android:color/system_neutral1_700</item>
|
||||
<item name="button_secondary_background_disabled">#66454647</item>
|
||||
<item name="button_secondary_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="button_secondary_foreground">?accent</item>
|
||||
<item name="button_secondary_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="button_tertiary_background">@color/clear</item>
|
||||
<item name="button_tertiary_background_disabled">#00000000</item>
|
||||
<item name="button_tertiary_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="button_tertiary_foreground">?accent</item>
|
||||
<item name="button_tertiary_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="cell_button_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="cell_button_foreground">?accent</item>
|
||||
<item name="cell_button_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="content_placeholder_icon">@android:color/system_neutral1_300</item>
|
||||
<item name="content_placeholder_icon">?accent</item>
|
||||
<item name="content_placeholder_text">@android:color/system_neutral1_300</item>
|
||||
<item name="content_tint_background">@android:color/system_neutral1_900</item>
|
||||
<item name="content_tint_foreground">@android:color/system_neutral1_400</item>
|
||||
@@ -575,9 +575,9 @@
|
||||
<item name="control_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="control_tint">@android:color/system_neutral1_900</item>
|
||||
<item name="control_tint_muted">@android:color/system_neutral1_400</item>
|
||||
<item name="counter_primary_background">?accent</item>
|
||||
<item name="counter_primary_text">@android:color/system_neutral1_100</item>
|
||||
<item name="counter_prominent_background">@android:color/system_accent1_500</item>
|
||||
<item name="counter_primary_background">@android:color/system_neutral1_100</item>
|
||||
<item name="counter_primary_text">@android:color/system_neutral1_900</item>
|
||||
<item name="counter_prominent_background">?accent</item>
|
||||
<item name="counter_prominent_text">@android:color/system_neutral1_100</item>
|
||||
<item name="counter_secondary_background">@android:color/system_neutral1_500</item>
|
||||
<item name="counter_secondary_text">@android:color/system_neutral1_900</item>
|
||||
@@ -588,7 +588,7 @@
|
||||
<item name="dynamic_orange">@color/orange</item>
|
||||
<item name="dynamic_red">@color/red</item>
|
||||
<item name="dynamic_violet">@color/violet_light</item>
|
||||
<item name="feed_recommended_friend_promo_background">@android:color/system_neutral1_500</item>
|
||||
<item name="feed_recommended_friend_promo_background">@android:color/system_neutral1_100</item>
|
||||
<item name="field_background">@android:color/system_neutral1_800</item>
|
||||
<item name="field_border">?background_keyboard</item>
|
||||
<item name="field_error_background">@color/red_dark</item>
|
||||
@@ -599,37 +599,37 @@
|
||||
<item name="float_button_background_disabled">#66454647</item>
|
||||
<item name="float_button_background_highlighted">@android:color/system_neutral1_600</item>
|
||||
<item name="float_button_background_highlighted_disabled">#665d5f61</item>
|
||||
<item name="float_button_border">@android:color/system_neutral1_300</item>
|
||||
<item name="float_button_border_disabled">@android:color/system_neutral1_300</item>
|
||||
<item name="float_button_border">@color/black_alpha12</item>
|
||||
<item name="float_button_border_disabled">#0c000000</item>
|
||||
<item name="float_button_foreground">@android:color/system_neutral1_300</item>
|
||||
<item name="float_button_foreground_disabled">#66aaaeb3</item>
|
||||
<item name="header_alternate_background">@android:color/system_neutral1_800</item>
|
||||
<item name="header_alternate_tab_active_indicator">@android:color/system_neutral1_100</item>
|
||||
<item name="header_alternate_tab_active_text">@android:color/system_neutral1_100</item>
|
||||
<item name="header_alternate_tab_active_text">?accent</item>
|
||||
<item name="header_alternate_tab_inactive_text">@android:color/system_neutral1_500</item>
|
||||
<item name="header_background">@android:color/system_neutral1_800</item>
|
||||
<item name="header_background_before_blur">@color/gray_950</item>
|
||||
<item name="header_background_before_blur_alternate">@color/gray_950</item>
|
||||
<item name="header_background_before_blur">@color/gray_A970</item>
|
||||
<item name="header_background_before_blur_alternate">@color/gray_A970</item>
|
||||
<item name="header_search_field_background">@android:color/system_neutral1_800</item>
|
||||
<item name="header_search_field_tint">@android:color/system_neutral1_300</item>
|
||||
<item name="header_tab_active_background">@android:color/system_neutral1_600</item>
|
||||
<item name="header_tab_active_indicator">@android:color/system_neutral1_100</item>
|
||||
<item name="header_tab_active_text">@android:color/system_neutral1_100</item>
|
||||
<item name="header_tab_active_indicator">?accent</item>
|
||||
<item name="header_tab_active_text">?accent</item>
|
||||
<item name="header_tab_inactive_text">@android:color/system_neutral1_500</item>
|
||||
<item name="header_text">@android:color/system_neutral1_100</item>
|
||||
<item name="header_text">?accent</item>
|
||||
<item name="header_text_alternate">@android:color/system_neutral1_100</item>
|
||||
<item name="header_text_secondary">@android:color/system_neutral1_100</item>
|
||||
<item name="header_tint">@android:color/system_neutral1_100</item>
|
||||
<item name="header_tint">?accent</item>
|
||||
<item name="header_tint_alternate">@android:color/system_neutral1_100</item>
|
||||
<item name="header_tint_disabled">#66e1e3e6</item>
|
||||
<item name="icon_alpha_placeholder">@android:color/system_neutral1_100</item>
|
||||
<item name="icon_medium">@android:color/system_neutral1_400</item>
|
||||
<item name="icon_medium">?accent</item>
|
||||
<item name="icon_medium_disabled">#66909499</item>
|
||||
<item name="icon_name">@android:color/system_neutral1_300</item>
|
||||
<item name="icon_outline_medium">@android:color/system_neutral1_300</item>
|
||||
<item name="icon_outline_secondary">@android:color/system_neutral1_400</item>
|
||||
<item name="icon_secondary">@android:color/system_neutral1_500</item>
|
||||
<item name="icon_tertiary">@android:color/system_neutral1_700</item>
|
||||
<item name="icon_name">?accent</item>
|
||||
<item name="icon_outline_medium">?accent</item>
|
||||
<item name="icon_outline_secondary">?accent</item>
|
||||
<item name="icon_secondary">?accent</item>
|
||||
<item name="icon_tertiary">?accent</item>
|
||||
<item name="im_attach_tint">?accent</item>
|
||||
<item name="im_bubble_border_alternate">@color/clear</item>
|
||||
<item name="im_bubble_border_alternate_highlighted">@color/clear</item>
|
||||
@@ -637,7 +637,7 @@
|
||||
<item name="im_bubble_button_background_disabled">#10ffffff</item>
|
||||
<item name="im_bubble_button_background_highlighted">#3dffffff</item>
|
||||
<item name="im_bubble_button_background_highlighted_disabled">#18ffffff</item>
|
||||
<item name="im_bubble_button_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="im_bubble_button_foreground">@android:color/system_neutral1_900</item>
|
||||
<item name="im_bubble_button_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="im_bubble_expiring">@color/mint_400</item>
|
||||
<item name="im_bubble_expiring_highlighted">@color/mint_500</item>
|
||||
@@ -657,54 +657,54 @@
|
||||
<item name="im_bubble_wallpaper_button_background_disabled">#66454647</item>
|
||||
<item name="im_bubble_wallpaper_button_background_highlighted">@android:color/system_neutral1_500</item>
|
||||
<item name="im_bubble_wallpaper_button_background_highlighted_disabled">#6676787a</item>
|
||||
<item name="im_bubble_wallpaper_button_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="im_bubble_wallpaper_button_foreground">@android:color/system_neutral1_900</item>
|
||||
<item name="im_bubble_wallpaper_button_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="im_bubble_wallpaper_expiring_border">@color/mint_500</item>
|
||||
<item name="im_bubble_wallpaper_incoming">@android:color/system_neutral1_800</item>
|
||||
<item name="im_bubble_wallpaper_incoming_border">@android:color/system_neutral1_900</item>
|
||||
<item name="im_bubble_wallpaper_incoming_border">?accent</item>
|
||||
<item name="im_bubble_wallpaper_incoming_highlighted">@android:color/system_neutral1_600</item>
|
||||
<item name="im_bubble_wallpaper_outgoing">@android:color/system_neutral1_700</item>
|
||||
<item name="im_bubble_wallpaper_outgoing_border">@android:color/system_neutral1_800</item>
|
||||
<item name="im_bubble_wallpaper_outgoing_border">?accent</item>
|
||||
<item name="im_bubble_wallpaper_outgoing_highlighted">@android:color/system_neutral1_600</item>
|
||||
<item name="im_forward_line_tint">@android:color/system_neutral1_100</item>
|
||||
<item name="im_forward_line_tint">?accent</item>
|
||||
<item name="im_reply_separator">@android:color/system_neutral1_100</item>
|
||||
<item name="im_service_message_text">@android:color/system_neutral1_400</item>
|
||||
<item name="im_service_message_text">@android:color/system_neutral1_500</item>
|
||||
<item name="im_text_name">?accent</item>
|
||||
<item name="im_toolbar_separator">@android:color/system_neutral1_300</item>
|
||||
<item name="im_toolbar_voice_msg_background">@android:color/system_neutral1_700</item>
|
||||
<item name="image_border">?background_keyboard</item>
|
||||
<item name="input_background">@android:color/system_neutral1_700</item>
|
||||
<item name="input_border">@android:color/system_neutral1_700</item>
|
||||
<item name="input_background">@android:color/system_neutral1_800</item>
|
||||
<item name="input_border">@android:color/system_neutral1_800</item>
|
||||
<item name="landing_background">@android:color/system_neutral1_900</item>
|
||||
<item name="landing_field_background">@android:color/system_neutral1_900</item>
|
||||
<item name="landing_field_border">?background_keyboard</item>
|
||||
<item name="landing_field_border">@color/clear</item>
|
||||
<item name="landing_field_placeholder">@android:color/system_neutral1_300</item>
|
||||
<item name="landing_login_button_background">@android:color/system_neutral1_100</item>
|
||||
<item name="landing_login_button_background">?accent</item>
|
||||
<item name="landing_login_button_background_disabled">#66e1e3e6</item>
|
||||
<item name="landing_login_button_foreground">@android:color/system_neutral1_900</item>
|
||||
<item name="landing_login_button_foreground_disabled">#6619191a</item>
|
||||
<item name="landing_primary_button_background">@android:color/system_neutral1_100</item>
|
||||
<item name="landing_primary_button_background">?accent</item>
|
||||
<item name="landing_primary_button_background_disabled">#66e1e3e6</item>
|
||||
<item name="landing_primary_button_foreground">@android:color/system_neutral1_900</item>
|
||||
<item name="landing_primary_button_foreground_disabled">#6619191a</item>
|
||||
<item name="landing_secondary_button_background">@android:color/system_neutral1_100</item>
|
||||
<item name="landing_secondary_button_background">?accent</item>
|
||||
<item name="landing_secondary_button_background_disabled">#0fffffff</item>
|
||||
<item name="landing_secondary_button_foreground">@android:color/system_neutral1_900</item>
|
||||
<item name="landing_secondary_button_foreground_disabled">#66ffffff</item>
|
||||
<item name="landing_snippet_border">@color/clear</item>
|
||||
<item name="landing_snippet_border">?background_keyboard</item>
|
||||
<item name="landing_tertiary_button_background">@color/clear</item>
|
||||
<item name="landing_tertiary_button_background_disabled">#00000000</item>
|
||||
<item name="landing_tertiary_button_foreground">@android:color/system_neutral1_500</item>
|
||||
<item name="landing_tertiary_button_foreground_disabled">#6676787a</item>
|
||||
<item name="landing_tertiary_button_foreground">?accent</item>
|
||||
<item name="landing_tertiary_button_foreground_disabled">#66ffffff</item>
|
||||
<item name="landing_text_primary">@android:color/system_neutral1_100</item>
|
||||
<item name="landing_text_secondary">@android:color/system_neutral1_500</item>
|
||||
<item name="landing_text_title">@android:color/system_neutral1_100</item>
|
||||
<item name="landing_text_title">?accent</item>
|
||||
<item name="like_text_tint">@color/red_light</item>
|
||||
<item name="link_alternate">?accent</item>
|
||||
<item name="loader_background">@android:color/system_neutral1_900</item>
|
||||
<item name="loader_tint">@android:color/system_neutral1_500</item>
|
||||
<item name="loader_track_fill">@android:color/system_neutral1_700</item>
|
||||
<item name="loader_track_value_fill">?accent</item>
|
||||
<item name="loader_track_value_fill">@android:color/system_neutral1_100</item>
|
||||
<item name="media_overlay_button_background">@android:color/system_neutral1_100</item>
|
||||
<item name="media_overlay_button_background_disabled">#66ffffff</item>
|
||||
<item name="media_overlay_button_foreground">@android:color/system_neutral1_800</item>
|
||||
@@ -721,10 +721,10 @@
|
||||
<item name="panel_tab_inactive_text">@android:color/system_neutral1_500</item>
|
||||
<item name="placeholder_icon_background">@android:color/system_neutral1_800</item>
|
||||
<item name="placeholder_icon_background_opaque">@android:color/system_neutral1_900</item>
|
||||
<item name="placeholder_icon_foreground_primary">@android:color/system_neutral1_400</item>
|
||||
<item name="placeholder_icon_foreground_secondary">@android:color/system_neutral1_600</item>
|
||||
<item name="placeholder_icon_tint">@android:color/system_neutral1_100</item>
|
||||
<item name="poll_option_background">@android:color/system_neutral1_100</item>
|
||||
<item name="placeholder_icon_foreground_primary">?accent</item>
|
||||
<item name="placeholder_icon_foreground_secondary">?accent</item>
|
||||
<item name="placeholder_icon_tint">?accent</item>
|
||||
<item name="poll_option_background">?accent</item>
|
||||
<item name="search_bar_background">@android:color/system_neutral1_900</item>
|
||||
<item name="search_bar_field_background">@android:color/system_neutral1_700</item>
|
||||
<item name="search_bar_field_tint">@android:color/system_neutral1_300</item>
|
||||
@@ -762,7 +762,7 @@
|
||||
<item name="text_link">?accent</item>
|
||||
<item name="text_link_hightlighted_background">?accent</item>
|
||||
<item name="text_muted">@android:color/system_neutral1_200</item>
|
||||
<item name="text_name">@android:color/system_neutral1_100</item>
|
||||
<item name="text_name">?accent</item>
|
||||
<item name="text_placeholder">@android:color/system_neutral1_300</item>
|
||||
<item name="text_primary">@android:color/system_neutral1_100</item>
|
||||
<item name="text_secondary">@android:color/system_neutral1_500</item>
|
||||
@@ -1047,9 +1047,9 @@
|
||||
<item name="action_sheet_action_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="action_sheet_separator">@android:color/system_neutral1_100</item>
|
||||
<item name="activity_indicator_tint">@android:color/system_neutral1_600</item>
|
||||
<item name="attach_picker_tab_active_background">@android:color/system_neutral1_100</item>
|
||||
<item name="attach_picker_tab_active_background">?accent</item>
|
||||
<item name="attach_picker_tab_active_icon">@color/black</item>
|
||||
<item name="attach_picker_tab_active_text">@android:color/system_neutral1_100</item>
|
||||
<item name="attach_picker_tab_active_text">?accent</item>
|
||||
<item name="attach_picker_tab_inactive_background">@color/black</item>
|
||||
<item name="attach_picker_tab_inactive_icon">@android:color/system_neutral1_100</item>
|
||||
<item name="attach_picker_tab_inactive_text">@android:color/system_neutral1_500</item>
|
||||
@@ -1067,27 +1067,27 @@
|
||||
<item name="button_commerce_foreground_disabled">#66ffffff</item>
|
||||
<item name="button_muted_background">@color/black</item>
|
||||
<item name="button_muted_background_disabled">#662c2d2e</item>
|
||||
<item name="button_muted_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="button_muted_foreground">?accent</item>
|
||||
<item name="button_muted_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="button_outline_border">?background_keyboard</item>
|
||||
<item name="button_outline_border">?accent</item>
|
||||
<item name="button_outline_border_disabled">#66e1e3e6</item>
|
||||
<item name="button_outline_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="button_outline_foreground">?accent</item>
|
||||
<item name="button_outline_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="button_primary_background">@android:color/system_neutral1_100</item>
|
||||
<item name="button_primary_background">?accent</item>
|
||||
<item name="button_primary_background_disabled">#66e1e3e6</item>
|
||||
<item name="button_primary_foreground">@color/black</item>
|
||||
<item name="button_primary_foreground_disabled">#6619191a</item>
|
||||
<item name="button_secondary_background">@android:color/system_neutral1_700</item>
|
||||
<item name="button_secondary_background_disabled">#66454647</item>
|
||||
<item name="button_secondary_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="button_secondary_foreground">?accent</item>
|
||||
<item name="button_secondary_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="button_tertiary_background">@color/clear</item>
|
||||
<item name="button_tertiary_background_disabled">#00000000</item>
|
||||
<item name="button_tertiary_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="button_tertiary_foreground">?accent</item>
|
||||
<item name="button_tertiary_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="cell_button_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="cell_button_foreground">?accent</item>
|
||||
<item name="cell_button_foreground_disabled">#66e1e3e6</item>
|
||||
<item name="content_placeholder_icon">@android:color/system_neutral1_300</item>
|
||||
<item name="content_placeholder_icon">?accent</item>
|
||||
<item name="content_placeholder_text">@android:color/system_neutral1_300</item>
|
||||
<item name="content_tint_background">@color/black</item>
|
||||
<item name="content_tint_foreground">@android:color/system_neutral1_400</item>
|
||||
@@ -1095,9 +1095,9 @@
|
||||
<item name="control_foreground">@android:color/system_neutral1_100</item>
|
||||
<item name="control_tint">@color/black</item>
|
||||
<item name="control_tint_muted">@android:color/system_neutral1_400</item>
|
||||
<item name="counter_primary_background">?accent</item>
|
||||
<item name="counter_primary_text">@android:color/system_neutral1_100</item>
|
||||
<item name="counter_prominent_background">@android:color/system_accent1_500</item>
|
||||
<item name="counter_primary_background">@android:color/system_neutral1_100</item>
|
||||
<item name="counter_primary_text">@color/black</item>
|
||||
<item name="counter_prominent_background">?accent</item>
|
||||
<item name="counter_prominent_text">@android:color/system_neutral1_100</item>
|
||||
<item name="counter_secondary_background">@android:color/system_neutral1_500</item>
|
||||
<item name="counter_secondary_text">@color/black</item>
|
||||
@@ -1125,31 +1125,31 @@
|
||||
<item name="float_button_foreground_disabled">#66aaaeb3</item>
|
||||
<item name="header_alternate_background">@color/black</item>
|
||||
<item name="header_alternate_tab_active_indicator">@android:color/system_neutral1_100</item>
|
||||
<item name="header_alternate_tab_active_text">@android:color/system_neutral1_100</item>
|
||||
<item name="header_alternate_tab_active_text">?accent</item>
|
||||
<item name="header_alternate_tab_inactive_text">@android:color/system_neutral1_500</item>
|
||||
<item name="header_background">@color/black</item>
|
||||
<item name="header_background_before_blur">@color/gray_950</item>
|
||||
<item name="header_background_before_blur_alternate">@color/gray_950</item>
|
||||
<item name="header_background_before_blur">@color/gray_A970</item>
|
||||
<item name="header_background_before_blur_alternate">@color/gray_A970</item>
|
||||
<item name="header_search_field_background">@android:color/system_neutral1_800</item>
|
||||
<item name="header_search_field_tint">@android:color/system_neutral1_300</item>
|
||||
<item name="header_tab_active_background">@android:color/system_neutral1_600</item>
|
||||
<item name="header_tab_active_indicator">@android:color/system_neutral1_100</item>
|
||||
<item name="header_tab_active_text">@android:color/system_neutral1_100</item>
|
||||
<item name="header_tab_active_indicator">?accent</item>
|
||||
<item name="header_tab_active_text">?accent</item>
|
||||
<item name="header_tab_inactive_text">@android:color/system_neutral1_500</item>
|
||||
<item name="header_text">@android:color/system_neutral1_100</item>
|
||||
<item name="header_text">?accent</item>
|
||||
<item name="header_text_alternate">@android:color/system_neutral1_100</item>
|
||||
<item name="header_text_secondary">@android:color/system_neutral1_100</item>
|
||||
<item name="header_tint">@android:color/system_neutral1_100</item>
|
||||
<item name="header_tint">?accent</item>
|
||||
<item name="header_tint_alternate">@android:color/system_neutral1_100</item>
|
||||
<item name="header_tint_disabled">#66e1e3e6</item>
|
||||
<item name="icon_alpha_placeholder">@android:color/system_neutral1_100</item>
|
||||
<item name="icon_medium">@android:color/system_neutral1_400</item>
|
||||
<item name="icon_medium">?accent</item>
|
||||
<item name="icon_medium_disabled">#66909499</item>
|
||||
<item name="icon_name">@android:color/system_neutral1_300</item>
|
||||
<item name="icon_outline_medium">@android:color/system_neutral1_300</item>
|
||||
<item name="icon_outline_secondary">@android:color/system_neutral1_400</item>
|
||||
<item name="icon_secondary">@android:color/system_neutral1_500</item>
|
||||
<item name="icon_tertiary">@android:color/system_neutral1_700</item>
|
||||
<item name="icon_name">?accent</item>
|
||||
<item name="icon_outline_medium">?accent</item>
|
||||
<item name="icon_outline_secondary">?accent</item>
|
||||
<item name="icon_secondary">?accent</item>
|
||||
<item name="icon_tertiary">?accent</item>
|
||||
<item name="im_attach_tint">?accent</item>
|
||||
<item name="im_bubble_border_alternate">@color/clear</item>
|
||||
<item name="im_bubble_border_alternate_highlighted">@color/clear</item>
|
||||
@@ -1186,45 +1186,45 @@
|
||||
<item name="im_bubble_wallpaper_outgoing">@android:color/system_neutral1_700</item>
|
||||
<item name="im_bubble_wallpaper_outgoing_border">@color/black</item>
|
||||
<item name="im_bubble_wallpaper_outgoing_highlighted">@android:color/system_neutral1_600</item>
|
||||
<item name="im_forward_line_tint">@android:color/system_neutral1_100</item>
|
||||
<item name="im_forward_line_tint">?accent</item>
|
||||
<item name="im_reply_separator">@android:color/system_neutral1_100</item>
|
||||
<item name="im_service_message_text">@android:color/system_neutral1_400</item>
|
||||
<item name="im_service_message_text">@android:color/system_neutral1_500</item>
|
||||
<item name="im_text_name">?accent</item>
|
||||
<item name="im_toolbar_separator">@android:color/system_neutral1_300</item>
|
||||
<item name="im_toolbar_voice_msg_background">@android:color/system_neutral1_700</item>
|
||||
<item name="image_border">?background_keyboard</item>
|
||||
<item name="input_background">@android:color/system_neutral1_700</item>
|
||||
<item name="input_border">@android:color/system_neutral1_700</item>
|
||||
<item name="input_background">@color/black</item>
|
||||
<item name="input_border">@color/black</item>
|
||||
<item name="landing_background">@color/black</item>
|
||||
<item name="landing_field_background">@color/black</item>
|
||||
<item name="landing_field_border">?background_keyboard</item>
|
||||
<item name="landing_field_border">@color/clear</item>
|
||||
<item name="landing_field_placeholder">@android:color/system_neutral1_300</item>
|
||||
<item name="landing_login_button_background">@android:color/system_neutral1_100</item>
|
||||
<item name="landing_login_button_background">?accent</item>
|
||||
<item name="landing_login_button_background_disabled">#66e1e3e6</item>
|
||||
<item name="landing_login_button_foreground">@color/black</item>
|
||||
<item name="landing_login_button_foreground_disabled">#6619191a</item>
|
||||
<item name="landing_primary_button_background">@android:color/system_neutral1_100</item>
|
||||
<item name="landing_primary_button_background">?accent</item>
|
||||
<item name="landing_primary_button_background_disabled">#66e1e3e6</item>
|
||||
<item name="landing_primary_button_foreground">@color/black</item>
|
||||
<item name="landing_primary_button_foreground_disabled">#6619191a</item>
|
||||
<item name="landing_secondary_button_background">@android:color/system_neutral1_100</item>
|
||||
<item name="landing_secondary_button_background">?accent</item>
|
||||
<item name="landing_secondary_button_background_disabled">#0fffffff</item>
|
||||
<item name="landing_secondary_button_foreground">@color/black</item>
|
||||
<item name="landing_secondary_button_foreground_disabled">#66ffffff</item>
|
||||
<item name="landing_snippet_border">@color/clear</item>
|
||||
<item name="landing_snippet_border">?background_keyboard</item>
|
||||
<item name="landing_tertiary_button_background">@color/clear</item>
|
||||
<item name="landing_tertiary_button_background_disabled">#00000000</item>
|
||||
<item name="landing_tertiary_button_foreground">@android:color/system_neutral1_500</item>
|
||||
<item name="landing_tertiary_button_foreground_disabled">#6676787a</item>
|
||||
<item name="landing_tertiary_button_foreground">?accent</item>
|
||||
<item name="landing_tertiary_button_foreground_disabled">#66ffffff</item>
|
||||
<item name="landing_text_primary">@android:color/system_neutral1_100</item>
|
||||
<item name="landing_text_secondary">@android:color/system_neutral1_500</item>
|
||||
<item name="landing_text_title">@android:color/system_neutral1_100</item>
|
||||
<item name="landing_text_title">?accent</item>
|
||||
<item name="like_text_tint">@color/red_light</item>
|
||||
<item name="link_alternate">?accent</item>
|
||||
<item name="loader_background">@color/black</item>
|
||||
<item name="loader_tint">@android:color/system_neutral1_500</item>
|
||||
<item name="loader_track_fill">@android:color/system_neutral1_700</item>
|
||||
<item name="loader_track_value_fill">?accent</item>
|
||||
<item name="loader_track_value_fill">@android:color/system_neutral1_100</item>
|
||||
<item name="media_overlay_button_background">@android:color/system_neutral1_100</item>
|
||||
<item name="media_overlay_button_background_disabled">#66ffffff</item>
|
||||
<item name="media_overlay_button_foreground">@color/black</item>
|
||||
@@ -1241,10 +1241,10 @@
|
||||
<item name="panel_tab_inactive_text">@android:color/system_neutral1_500</item>
|
||||
<item name="placeholder_icon_background">@android:color/system_neutral1_900</item>
|
||||
<item name="placeholder_icon_background_opaque">@color/black</item>
|
||||
<item name="placeholder_icon_foreground_primary">@android:color/system_neutral1_400</item>
|
||||
<item name="placeholder_icon_foreground_secondary">@android:color/system_neutral1_600</item>
|
||||
<item name="placeholder_icon_tint">@android:color/system_neutral1_100</item>
|
||||
<item name="poll_option_background">@android:color/system_neutral1_100</item>
|
||||
<item name="placeholder_icon_foreground_primary">?accent</item>
|
||||
<item name="placeholder_icon_foreground_secondary">?accent</item>
|
||||
<item name="placeholder_icon_tint">?accent</item>
|
||||
<item name="poll_option_background">?accent</item>
|
||||
<item name="search_bar_background">@color/black</item>
|
||||
<item name="search_bar_field_background">@android:color/system_neutral1_800</item>
|
||||
<item name="search_bar_field_tint">@android:color/system_neutral1_300</item>
|
||||
@@ -1282,7 +1282,7 @@
|
||||
<item name="text_link">?accent</item>
|
||||
<item name="text_link_hightlighted_background">?accent</item>
|
||||
<item name="text_muted">@android:color/system_neutral1_200</item>
|
||||
<item name="text_name">@android:color/system_neutral1_100</item>
|
||||
<item name="text_name">?accent</item>
|
||||
<item name="text_placeholder">@android:color/system_neutral1_300</item>
|
||||
<item name="text_primary">@android:color/system_neutral1_100</item>
|
||||
<item name="text_secondary">@android:color/system_neutral1_500</item>
|
||||
|
||||
@@ -6532,6 +6532,7 @@ May look like a fake leaving the online"</string>
|
||||
|
||||
<string name="datasettings_title">Application data settings</string>
|
||||
<string name="invalidate_theme_cache_title">Invalidate theme cache</string>
|
||||
<string name="invalidate_theme_cache_each_update_title">Clear theme cache after update to prevent problems with accents</string>
|
||||
|
||||
<string name="useCustomPrefsStyle_title">Use new switches</string>
|
||||
<string name="useCustomPrefsStyle_summ">More modern and stylish toggle switches in settings</string>
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
android:summary="@string/accent_color_summ"
|
||||
android:icon="@drawable/bg_accent_circle"
|
||||
android:title="@string/accent_color_title"/>
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||
android:defaultValue="true"
|
||||
android:key="invalidate_theme_cache_each_update"
|
||||
android:summary="@string/invalidate_theme_cache_each_update_title"
|
||||
android:title="@string/invalidate_theme_cache_title"/>
|
||||
<Preference
|
||||
android:key="invalidate_theme_cache"
|
||||
android:title="@string/invalidate_theme_cache_title" />
|
||||
@@ -84,10 +89,5 @@
|
||||
android:key="VKUI_INJ"
|
||||
android:summary="@string/appearance_other_color_webview_summary"
|
||||
android:title="@string/vkuiinj"/>
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="useNewColorEngine"
|
||||
android:summary="@string/useNewColorEngine_summ"
|
||||
android:title="@string/useNewColorEngine_title"/>
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
@@ -157,7 +157,7 @@
|
||||
.method public getResources()Landroid/content/res/Resources;
|
||||
.registers 3
|
||||
|
||||
invoke-static {}, Lru/vtosters/hooks/other/ThemesUtils;->isCustomAccentEnabled()Z
|
||||
invoke-static {}, Lru/vtosters/hooks/other/ThemesUtils;->isMonetTheme()Z
|
||||
|
||||
move-result v1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user