new color engine now is optional

This commit is contained in:
gdlbo
2023-03-27 21:00:40 +03:00
parent 8b434d4cae
commit 10ed61acfc
12 changed files with 82 additions and 42 deletions
@@ -38,7 +38,7 @@ public class MainActivityInjector {
NotificationChannels.createChannels();
}
if (Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && ThemesManager.canApplyCustomAccent()) {
if (Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && ThemesManager.canApplyCustomAccent() && ThemesUtils.useNewColorEngine()) {
Preferences.updateBuildNumber();
updateBinsAndTmpArchive(activity);
}
@@ -23,7 +23,6 @@ public class ThemesHacks {
}
public static int getHackedColor(@NonNull Context context, @ColorRes int color) {
if (ThemesUtils.isCustomAccentEnabled()) {
if (Preferences.getBoolValue("logColors", false)) {
try {
@@ -120,7 +120,7 @@ public class ThemesManager {
initPaths(app);
validateModApk();
if (!Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && canApplyCustomAccent()) {
if (!Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && canApplyCustomAccent() && ThemesUtils.useNewColorEngine()) {
ResourcesLoader.init(app);
ResourcesLoader.load(app, modApk.getAbsolutePath(), false);
}
@@ -29,7 +29,7 @@ public class ViewInjector {
}
public static View inject(View view, int i, boolean z) {
if (ThemesUtils.isMonetTheme()) {
if (ThemesUtils.isCustomAccentEnabled()) {
for (BaseHook hook : hooks) {
hook.inject(view, i, z);
}
@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.vtosters.lite.R;
import ru.vtosters.lite.themes.hooks.TextViewHook;
import ru.vtosters.lite.ui.adapters.CategorizedAdapter;
import ru.vtosters.lite.ui.components.DockBarEditorManager;
import ru.vtosters.lite.ui.components.ItemMovingCallback;
@@ -57,6 +58,8 @@ public class DockBarEditorFragment extends BaseToolbarFragment {
restartApplication();
});
new TextViewHook().inject(save, 0, false);
var saveParams = LayoutUtils.createLinear(0, -2);
saveParams.weight = 1.0f;
buttonsContainer.addView(save, saveParams);
@@ -15,6 +15,7 @@ import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.vtosters.lite.R;
import ru.vtosters.lite.themes.hooks.TextViewHook;
import ru.vtosters.lite.ui.adapters.CategorizedAdapter;
import ru.vtosters.lite.ui.components.ItemMovingCallback;
import ru.vtosters.lite.ui.components.SuperAppEditorManager;
@@ -66,6 +67,8 @@ public class SuperAppEditorFragment extends BaseToolbarFragment {
restartApplication();
});
new TextViewHook().inject(save, 0, false);
var saveParams = LayoutUtils.createLinear(0, -2);
saveParams.weight = 1.0f;
buttonsContainer.addView(save, saveParams);
@@ -17,6 +17,7 @@ import com.vtosters.lite.R;
import b.h.g.k.VKProgressDialog;
import ru.vtosters.lite.concurrent.VTExecutors;
import ru.vtosters.lite.themes.ThemesCore;
import ru.vtosters.lite.themes.ThemesManager;
import ru.vtosters.lite.themes.palettes.PalettesManager;
import ru.vtosters.lite.ui.dialogs.PalettesBottomSheetDialog;
@@ -49,7 +50,7 @@ public class ThemesFragment extends TrackedMaterialPreferenceToolbarFragment {
findPreference("systememoji").setSummary(getGlobalContext().getString(R.string.systememojisum) + " \uD83D\uDE00\uD83D\uDE01\uD83E\uDD11\uD83E\uDD75\uD83D\uDC4D");
var invalidateThemeCache = findPreference("invalidate_theme_cache");
if (ThemesUtils.getReservedAccent() != Color.TRANSPARENT && Preferences.dev())
if (ThemesUtils.getReservedAccent() != Color.TRANSPARENT && Preferences.dev() && ThemesUtils.useNewColorEngine())
invalidateThemeCache.setOnPreferenceClickListener(preference -> {
setAccentColor(ThemesUtils.getReservedAccent());
return true;
@@ -156,8 +157,12 @@ public class ThemesFragment extends TrackedMaterialPreferenceToolbarFragment {
}
})
.setNegativeButton(R.string.reset, (dialog, which) -> {
ThemesManager.deleteModification();
ThemesUtils.reserveAccentColor(Color.TRANSPARENT, false);
if (ThemesUtils.useNewColorEngine()) {
ThemesManager.deleteModification();
ThemesUtils.reserveAccentColor(Color.TRANSPARENT, false);
} else {
ThemesUtils.setCustomAccentColor(0, false);
}
restart();
})
.setPositiveButton(R.string.cancel, null)
@@ -203,29 +208,35 @@ public class ThemesFragment extends TrackedMaterialPreferenceToolbarFragment {
}
void setAccentColor(int color) {
final VKProgressDialog dialog = new VKProgressDialog(requireContext());
dialog.setCancelable(false);
dialog.setMessage("Применение акцента...");
dialog.show();
if (ThemesUtils.useNewColorEngine()) {
final VKProgressDialog dialog = new VKProgressDialog(requireContext());
dialog.setCancelable(false);
dialog.setMessage("Применение акцента...");
dialog.show();
VTExecutors.getIoExecutor().execute(() -> {
try {
ThemesUtils.reserveAccentColor(color, true);
ThemesManager.generateModApk(color);
requireActivity().runOnUiThread(this::restart);
} catch (Throwable e) {
Log.e("ThemesFragment", e + "");
ThemesManager.deleteModification();
requireActivity().runOnUiThread(() -> {
dialog.dismiss();
new VkAlertDialog.Builder(requireContext())
.setTitle("Ошибка")
.setMessage("Ошибка при применении акцента:\n" + e)
.setPositiveButton("OK", null)
.show();
});
}
});
VTExecutors.getIoExecutor().execute(() -> {
try {
ThemesUtils.reserveAccentColor(color, true);
ThemesManager.generateModApk(color);
requireActivity().runOnUiThread(this::restart);
} catch (Throwable e) {
Log.e("ThemesFragment", e + "");
ThemesManager.deleteModification();
requireActivity().runOnUiThread(() -> {
dialog.dismiss();
new VkAlertDialog.Builder(requireContext())
.setTitle("Ошибка")
.setMessage("Ошибка при применении акцента:\n" + e)
.setPositiveButton("OK", null)
.show();
});
}
});
} else {
ThemesUtils.setCustomAccentColor(color, false);
ThemesCore.setThemedColors(color);
restart();
}
}
void restart() {
@@ -29,9 +29,7 @@ import com.vtosters.lite.R;
import com.vtosters.lite.data.ThemeTracker;
import ru.vtosters.lite.deviceinfo.OEMDetector;
import ru.vtosters.lite.hooks.VKUIHook;
import ru.vtosters.lite.hooks.ui.SystemThemeChangerHook;
import ru.vtosters.lite.themes.ThemesHacks;
import ru.vtosters.lite.themes.ThemesManager;
import ru.vtosters.lite.ui.wallpapers.WallpapersHooks;
import java.lang.reflect.Field;
@@ -49,7 +47,7 @@ public class ThemesUtils {
} // Apply VKTheme and ImTheme (hard applying without dynamic theme changing)
public static boolean isCustomAccentEnabled() {
return ThemesUtils.isMonetTheme() || ThemesManager.canApplyCustomAccent();
return ThemesUtils.isMonetTheme() || !useNewColorEngine();
}
public static ColorStateList getAccenedColorStateList() {
@@ -92,8 +90,13 @@ public class ThemesUtils {
return getBoolValue("amoledtheme", false);
}
public static boolean useNewColorEngine() {
return getBoolValue("useNewColorEngine", false);
}
public static int getAccentColor() {
return getColorFromAttr(R.attr.accent);
var color = Preferences.getPreferences().getInt("accent_color", getColorFromAttr(R.attr.accent));
return color == 0 || useNewColorEngine() || isMonetTheme() ? getColorFromAttr(R.attr.accent) : color;
} // Color accent
//region Used for migrating accent color to new version
-7
View File
@@ -22,13 +22,6 @@
android:key="useGenius"
android:summary="Получать тексты с сервиса Genius"
android:title="Тексты с Genius"/>
<!-- <com.vtosters.lite.ui.SummaryListPreference
android:defaultValue="system"
android:dialogTitle="@string/debug_experimental_language_summary"
android:entries="@array/language"
android:entryValues="@array/lang_value"
android:key="lang_value"
android:title="@string/debug_experimental_language" /> -->
<com.vtosters.lite.ui.MaterialSwitchPreference
android:defaultValue="true"
android:key="useNewSettings"
+5 -1
View File
@@ -7,7 +7,6 @@
android:summary="@string/accent_color_summ"
android:icon="@drawable/bg_accent_circle"
android:title="@string/accent_color_title"/>
<Preference
android:key="invalidate_theme_cache"
android:title="Инвалидация кэша темы" />
@@ -87,5 +86,10 @@
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="Может быть нестабильно"
android:title="Использовать новый движок акцентов"/>
</PreferenceCategory>
</PreferenceScreen>
@@ -343,6 +343,12 @@
invoke-super {p0, p1, p2}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object p2
const/4 v0, 0x1
invoke-static {p2, p1, v0}, Lru/vtosters/lite/themes/ViewInjector;->inject(Landroid/view/View;IZ)Landroid/view/View;
move-result-object p1
return-object p1
@@ -353,6 +359,10 @@
invoke-super {p0, p1, p2, p3}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;
move-result-object p2
invoke-static {p2, p1, p3}, Lru/vtosters/lite/themes/ViewInjector;->inject(Landroid/view/View;IZ)Landroid/view/View;
move-result-object p1
return-object p1
@@ -365,6 +375,14 @@
move-result-object p1
const/4 p2, -0x1
const/4 v0, 0x1
invoke-static {p1, p2, v0}, Lru/vtosters/lite/themes/ViewInjector;->inject(Landroid/view/View;IZ)Landroid/view/View;
move-result-object p1
return-object p1
.end method
@@ -375,5 +393,11 @@
move-result-object p1
const/4 p2, -0x1
invoke-static {p1, p2, p3}, Lru/vtosters/lite/themes/ViewInjector;->inject(Landroid/view/View;IZ)Landroid/view/View;
move-result-object p1
return-object p1
.end method
@@ -157,7 +157,7 @@
.method public getResources()Landroid/content/res/Resources;
.registers 3
invoke-static {}, Lru/vtosters/lite/utils/ThemesUtils;->isMonetTheme()Z
invoke-static {}, Lru/vtosters/lite/utils/ThemesUtils;->isCustomAccentEnabled()Z
move-result v1