icon manager test dead
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
package ru.vtosters.lite.ui.fragments;
|
||||
|
||||
import static ru.vtosters.lite.utils.Globals.convertDpToPixel;
|
||||
import static ru.vtosters.lite.utils.Globals.edit;
|
||||
import static ru.vtosters.lite.utils.Globals.getDrawableFromUrl;
|
||||
import static ru.vtosters.lite.utils.Globals.getIdentifier;
|
||||
import static ru.vtosters.lite.utils.Globals.getPackageName;
|
||||
import static ru.vtosters.lite.utils.Globals.getPrefsValue;
|
||||
import static ru.vtosters.lite.utils.Globals.getUserPhoto;
|
||||
import static ru.vtosters.lite.utils.Globals.getUsername;
|
||||
import static ru.vtosters.lite.utils.Globals.restartApplication;
|
||||
import static ru.vtosters.lite.utils.Globals.sendToast;
|
||||
import static ru.vtosters.lite.utils.IconManager.*;
|
||||
import static ru.vtosters.lite.utils.Preferences.DoNotUseOldIcons;
|
||||
import static ru.vtosters.lite.utils.Preferences.hasVerification;
|
||||
import static ru.vtosters.lite.utils.Preferences.preferences;
|
||||
import static ru.vtosters.lite.utils.Proxy.isZaboronaEnabled;
|
||||
import static ru.vtosters.lite.utils.Themes.getAccentColor;
|
||||
import static ru.vtosters.lite.utils.Themes.getAlertStyle;
|
||||
import static ru.vtosters.lite.utils.Themes.getTextAttr;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.TypedValue;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.RadioGroup;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.view.ContextThemeWrapper;
|
||||
|
||||
import com.vk.bridges.AuthBridge;
|
||||
import com.vk.navigation.Navigator;
|
||||
import com.vtosters.lite.fragments.w2.BlacklistFragment;
|
||||
import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment;
|
||||
|
||||
import ru.vtosters.lite.ui.PreferencesUtil;
|
||||
import ru.vtosters.lite.utils.Globals;
|
||||
import ru.vtosters.lite.utils.IconManager;
|
||||
|
||||
public class IconsFragment extends MaterialPreferenceToolbarFragment{
|
||||
@SuppressLint("UseCompatLoadingForDrawables")
|
||||
@Override
|
||||
public void onCreate(Bundle bundle){
|
||||
super.onCreate(bundle);
|
||||
PreferencesUtil.addPreferenceCategory(this, Globals.getString("sett_debug"));
|
||||
|
||||
for (var i = 0; i < icons().size(); i++) {
|
||||
if (icons().get(i) == null || iconsValues().get(i) == null) return;
|
||||
|
||||
String icon = icons().get(i);
|
||||
String iconname = iconsValues().get(i);
|
||||
|
||||
PreferencesUtil.addPreference(this, icon, iconname, "", "ic_bug_outline_28", preference -> {
|
||||
sendToast(icon);
|
||||
|
||||
callSelectDialog(this.getContext(), icon);
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
public static void callSelectDialog(Context ctx, String appicon){
|
||||
RadioGroup rg = new RadioGroup(ctx);
|
||||
|
||||
RadioButton rgDefault = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
|
||||
RadioButton rgVK = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
|
||||
RadioButton rgVKontakte = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
|
||||
|
||||
rg.addView(rgDefault);
|
||||
rg.addView(rgVK);
|
||||
rg.addView(rgVKontakte);
|
||||
|
||||
rgDefault.setTextSize(TypedValue.COMPLEX_UNIT_PX, convertDpToPixel(14f));
|
||||
rgVK.setTextSize(TypedValue.COMPLEX_UNIT_PX, convertDpToPixel(14f));
|
||||
rgVKontakte.setTextSize(TypedValue.COMPLEX_UNIT_PX, convertDpToPixel(14f));
|
||||
|
||||
rg.setPadding(convertDpToPixel(18f), convertDpToPixel(12f), convertDpToPixel(18f), 0);
|
||||
|
||||
rgDefault.setText("VTLite");
|
||||
rgDefault.setTextColor(getTextAttr());
|
||||
|
||||
rgVK.setText("VK");
|
||||
rgVK.setTextColor(getTextAttr());
|
||||
|
||||
rgVKontakte.setText("VKontakte");
|
||||
rgVKontakte.setTextColor(getTextAttr());
|
||||
|
||||
rgVKontakte.setChecked(isZaboronaEnabled());
|
||||
rgVK.setChecked(isZaboronaEnabled());
|
||||
rgDefault.setChecked(!isZaboronaEnabled());
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(ctx, getAlertStyle());
|
||||
builder.setTitle("Выберите название приложения");
|
||||
builder.setView(rg);
|
||||
builder.setPositiveButton("Применить", ((dialog, which) -> {
|
||||
var defname = preferences.getString("appname", "vt");
|
||||
var deficon = preferences.getString("selectedicon", "vt");
|
||||
|
||||
if (rgDefault.isChecked()) {
|
||||
edit().putString("appname", "vt").commit();
|
||||
edit().putString("selectedicon", appicon).commit();
|
||||
|
||||
switchComponent(appicon, "vt", deficon, defname);
|
||||
} else if (rgVK.isChecked()) {
|
||||
edit().putString("appname", "vk").commit();
|
||||
edit().putString("selectedicon", appicon).commit();
|
||||
|
||||
switchComponent(appicon, "vk", deficon, defname);
|
||||
} else if (rgVKontakte.isChecked()) {
|
||||
edit().putString("appname", "vkontakte").commit();
|
||||
edit().putString("selectedicon", appicon).commit();
|
||||
|
||||
switchComponent(appicon, "vkontakte", deficon, defname);
|
||||
}
|
||||
}));
|
||||
builder.setNegativeButton("Отмена", ((dialog, which) -> {
|
||||
dialog.dismiss();
|
||||
}));
|
||||
|
||||
var alert = builder.create();
|
||||
|
||||
alert.show();
|
||||
|
||||
alert.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(getAccentColor());
|
||||
alert.getButton(DialogInterface.BUTTON_NEUTRAL).setTextColor(getAccentColor());
|
||||
}
|
||||
}
|
||||
@@ -4,12 +4,17 @@ import static ru.vtosters.lite.utils.Globals.edit;
|
||||
import static ru.vtosters.lite.utils.Globals.getIdentifier;
|
||||
import static ru.vtosters.lite.utils.Globals.restartApplicationWithTimer;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.vk.navigation.Navigator;
|
||||
import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment;
|
||||
|
||||
import ru.vtosters.lite.ui.wallpapers.WallpaperMenuFragment;
|
||||
|
||||
|
||||
public class ThemesFragment extends MaterialPreferenceToolbarFragment{
|
||||
|
||||
@@ -25,6 +30,18 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment{
|
||||
findPreference("milkshake").setOnPreferenceClickListener(new restart());
|
||||
findPreference("darktheme").setOnPreferenceChangeListener(new restartdark());
|
||||
findPreference("lighttheme").setOnPreferenceChangeListener(new restartlight());
|
||||
findPreference("iconmanager").setOnPreferenceClickListener(new openicons());
|
||||
}
|
||||
|
||||
public class openicons implements Preference.OnPreferenceClickListener{
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference){
|
||||
Context context = getContext();
|
||||
Intent a2 = new Navigator(IconsFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public static class restart implements Preference.OnPreferenceClickListener{
|
||||
|
||||
@@ -184,14 +184,6 @@ public class VTSettings extends MaterialPreferenceToolbarFragment{
|
||||
});
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 26) {
|
||||
PreferencesUtil.addListPreferenceIcon(this, "selectedicon", "vt", "Icons", "ic_vk_logo_48", "", icons(), iconsValues(), (preference, o) -> {
|
||||
edit().putString("selectedicon", o.toString()).apply();
|
||||
IconManager.switchComponent(o.toString(), "standard");
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
if (!isGmsInstalled()) {
|
||||
PreferencesUtil.addPreference(this, "", Globals.getString("installgms"), "", "ic_warning_24", preference -> {
|
||||
Context context = getContext();
|
||||
|
||||
@@ -52,28 +52,25 @@ public class IconManager {
|
||||
"VK", "VTLite", "VKontakte"
|
||||
);
|
||||
|
||||
public static CharSequence[] icons() {
|
||||
return (hasVerification() && isValidSignature() ? sIconsPlusNames : sIconsNames).toArray(new CharSequence[0]);
|
||||
public static List<String> icons() {
|
||||
return hasVerification() && isValidSignature() ? sIconsPlusNames : sIconsNames;
|
||||
}
|
||||
|
||||
public static CharSequence[] iconsValues() {
|
||||
return (hasVerification() && isValidSignature() ? sIconsPlus : sIcons).toArray(new CharSequence[0]);
|
||||
public static List<String> iconsValues() {
|
||||
return hasVerification() && isValidSignature() ? sIconsPlus : sIcons;
|
||||
}
|
||||
|
||||
public static CharSequence[] appname() {
|
||||
return (hasVerification() && isValidSignature() ? sLabelsPlusNames : sLabelsNames).toArray(new CharSequence[0]);
|
||||
}
|
||||
public static void switchComponent(String icon, String appName, String oldIcon, String oldAppName) {
|
||||
|
||||
public static CharSequence[] appnameValues() {
|
||||
return (hasVerification() && isValidSignature() ? sLabelsPlus : sLabels).toArray(new CharSequence[0]);
|
||||
}
|
||||
|
||||
public static void switchComponent(String icon, String appName) {
|
||||
// def value for standard icon
|
||||
var iconIndex = 1;
|
||||
// def value for standard label
|
||||
var labelIndex = 1;
|
||||
|
||||
var oldIconIndex = -1;
|
||||
|
||||
var oldLabelIndex = -1;
|
||||
|
||||
Log.d("IconManager", "iconSwitcher: icon = " + icon + ", appname = " + appName);
|
||||
|
||||
List<String> iconsList;
|
||||
@@ -87,6 +84,11 @@ public class IconManager {
|
||||
labelsList = sLabels;
|
||||
}
|
||||
|
||||
if (oldIcon != null && oldAppName != null) {
|
||||
oldIconIndex = iconsList.indexOf(oldIcon);
|
||||
oldLabelIndex = labelsList.indexOf(oldAppName);
|
||||
}
|
||||
|
||||
// check if icon is exist
|
||||
if (iconsList.contains(icon))
|
||||
// get icon index
|
||||
@@ -98,6 +100,11 @@ public class IconManager {
|
||||
labelIndex = labelsList.indexOf(appName);
|
||||
|
||||
String currentState = getPreferences().getString("components_enabled", "11");
|
||||
|
||||
if (oldIconIndex != -1 && oldLabelIndex != -1) {
|
||||
currentState = oldIconIndex + "" + oldLabelIndex;
|
||||
}
|
||||
|
||||
String newState = iconIndex + "" + labelIndex;
|
||||
|
||||
// check if current component is equal to custom value or if custom value is not exist
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
android:title="@string/appearance_theme_light_theme" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="@string/vtlother">
|
||||
<Preference
|
||||
android:key="iconmanager"
|
||||
android:title="Выбрать иконку приложения" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||
android:defaultValue="true"
|
||||
android:key="navbar"
|
||||
|
||||
Reference in New Issue
Block a user