new color engine now is optional
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user