diff --git a/app/src/main/java/ru/vtosters/hooks/GcmHook.java b/app/src/main/java/ru/vtosters/hooks/GcmHook.java index 2f70a4dc5..28c15efc4 100644 --- a/app/src/main/java/ru/vtosters/hooks/GcmHook.java +++ b/app/src/main/java/ru/vtosters/hooks/GcmHook.java @@ -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(); } diff --git a/app/src/main/java/ru/vtosters/hooks/NewsfeedHook.java b/app/src/main/java/ru/vtosters/hooks/NewsfeedHook.java index dae6244ed..9f082c81a 100644 --- a/app/src/main/java/ru/vtosters/hooks/NewsfeedHook.java +++ b/app/src/main/java/ru/vtosters/hooks/NewsfeedHook.java @@ -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.*; diff --git a/app/src/main/java/ru/vtosters/hooks/RenameHook.java b/app/src/main/java/ru/vtosters/hooks/RenameHook.java index 3cc51575c..0d5133fd6 100644 --- a/app/src/main/java/ru/vtosters/hooks/RenameHook.java +++ b/app/src/main/java/ru/vtosters/hooks/RenameHook.java @@ -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 { diff --git a/app/src/main/java/ru/vtosters/hooks/other/ThemesUtils.java b/app/src/main/java/ru/vtosters/hooks/other/ThemesUtils.java index 220b19fdf..0c57384c0 100644 --- a/app/src/main/java/ru/vtosters/hooks/other/ThemesUtils.java +++ b/app/src/main/java/ru/vtosters/hooks/other/ThemesUtils.java @@ -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; diff --git a/app/src/main/java/ru/vtosters/hooks/ssfs/BannerHook.java b/app/src/main/java/ru/vtosters/hooks/ssfs/BannerHook.java index 0487d1a1b..78ffe82d1 100644 --- a/app/src/main/java/ru/vtosters/hooks/ssfs/BannerHook.java +++ b/app/src/main/java/ru/vtosters/hooks/ssfs/BannerHook.java @@ -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; diff --git a/app/src/main/java/ru/vtosters/lite/music/TransportStream.java b/app/src/main/java/ru/vtosters/lite/music/TransportStream.java index 62b68c8a8..2bc3609f8 100644 --- a/app/src/main/java/ru/vtosters/lite/music/TransportStream.java +++ b/app/src/main/java/ru/vtosters/lite/music/TransportStream.java @@ -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) { diff --git a/app/src/main/java/ru/vtosters/lite/music/VKM3UParser.java b/app/src/main/java/ru/vtosters/lite/music/VKM3UParser.java index 835a3e728..a95b583a1 100644 --- a/app/src/main/java/ru/vtosters/lite/music/VKM3UParser.java +++ b/app/src/main/java/ru/vtosters/lite/music/VKM3UParser.java @@ -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 mTransportStreams = new ArrayList<>(); - private final String mData; /** * @see EXT-X-VERSION **/ diff --git a/app/src/main/java/ru/vtosters/lite/music/catalog/inject/CatalogJsonInjector.java b/app/src/main/java/ru/vtosters/lite/music/catalog/inject/CatalogJsonInjector.java index bf572e7fc..328542dce 100644 --- a/app/src/main/java/ru/vtosters/lite/music/catalog/inject/CatalogJsonInjector.java +++ b/app/src/main/java/ru/vtosters/lite/music/catalog/inject/CatalogJsonInjector.java @@ -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; diff --git a/app/src/main/java/ru/vtosters/lite/themes/utils/ArscEditor.java b/app/src/main/java/ru/vtosters/lite/themes/utils/ArscEditor.java index fc96719e5..2b3b65236 100644 --- a/app/src/main/java/ru/vtosters/lite/themes/utils/ArscEditor.java +++ b/app/src/main/java/ru/vtosters/lite/themes/utils/ArscEditor.java @@ -1,29 +1,25 @@ 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 void changeColors(BinaryResourceFile arsc,int[] colorIds,int color) { - for(var chunk:arsc.getChunks()) - { - 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; + public static void changeColors(BinaryResourceFile arsc, int[] colorIds, int color) { + for (var chunk : arsc.getChunks()) { + 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; } } @@ -33,11 +29,10 @@ public class ArscEditor { } } - 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; + 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; } } diff --git a/app/src/main/java/ru/vtosters/lite/ui/adapters/CategorizedAdapter.java b/app/src/main/java/ru/vtosters/lite/ui/adapters/CategorizedAdapter.java index 933552b61..f34830bc3 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/adapters/CategorizedAdapter.java +++ b/app/src/main/java/ru/vtosters/lite/ui/adapters/CategorizedAdapter.java @@ -36,7 +36,7 @@ public class CategorizedAdapter extends RecyclerView.Adapter mSelectedItems; private final List mDisabledItems; private final List mUnmovedItems; - final private List< T > mExceptions=new ArrayList<>(); + final private List mExceptions = new ArrayList<>(); private final IViewHolderBinder mBinder; // Min and max counts @@ -50,8 +50,7 @@ public class CategorizedAdapter extends RecyclerView.Adapter extends RecyclerView.Adapter { - if((getTabType(toPosition) == DISABLED_STATE + if ((getTabType(toPosition) == DISABLED_STATE && mSelectedItems.size() == mMinSelectedItems)) return false; - 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; + 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); + mDisabledItems.add(0, mSelectedItems.remove(fromPosition - 1)); + } else Collections.swap(mSelectedItems, fromPosition - 1, toPosition - 1); } case DISABLED_STATE -> { if (getTabType(toPosition) == SELECTED_STATE diff --git a/app/src/main/java/ru/vtosters/lite/ui/components/DockBarEditorManager.java b/app/src/main/java/ru/vtosters/lite/ui/components/DockBarEditorManager.java index 0bfb7972b..708a00e0b 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/components/DockBarEditorManager.java +++ b/app/src/main/java/ru/vtosters/lite/ui/components/DockBarEditorManager.java @@ -59,70 +59,6 @@ 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 getSelectedTabs() { - return mSelectedTabs; - } - - public List getDisabledTabs() { - return mDisabledTabs; - } - public static DockBarTab getTabByTag(String tag) { return switch (tag) { case "tab_news" -> DockBarTab.valuesOf( @@ -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 getSelectedTabs() { + return mSelectedTabs; + } + + public List getDisabledTabs() { + return mDisabledTabs; + } } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java index 9d7d99723..daad894c3 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java @@ -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")); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java index 327c8242f..200bc51a8 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java @@ -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)); diff --git a/app/src/main/java/ru/vtosters/lite/ui/items/DockBarTab.java b/app/src/main/java/ru/vtosters/lite/ui/items/DockBarTab.java index 66f7e8ed4..a3610fbc9 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/items/DockBarTab.java +++ b/app/src/main/java/ru/vtosters/lite/ui/items/DockBarTab.java @@ -2,8 +2,7 @@ package ru.vtosters.lite.ui.items; import com.vk.core.fragments.FragmentImpl; -public class DockBarTab -{ +public class DockBarTab { public String tag; public int iconID; @@ -34,8 +33,7 @@ public class DockBarTab } @Override - public boolean equals(Object arg) - { - return this.id==((DockBarTab)arg).id; + public boolean equals(Object arg) { + return this.id == ((DockBarTab) arg).id; } } diff --git a/app/src/main/java/ru/vtosters/lite/ui/items/SuperAppItem.java b/app/src/main/java/ru/vtosters/lite/ui/items/SuperAppItem.java index 4ad31d802..066efe832 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/items/SuperAppItem.java +++ b/app/src/main/java/ru/vtosters/lite/ui/items/SuperAppItem.java @@ -1,9 +1,6 @@ package ru.vtosters.lite.ui.items; -import ru.vtosters.lite.ui.adapters.CategorizedAdapter; - -public class SuperAppItem -{ +public class SuperAppItem { public String type; public String title; @@ -18,9 +15,8 @@ public class SuperAppItem } @Override - public boolean equals(Object arg) - { - var item=(SuperAppItem)arg; - return this.type.equals(item.type)&&this.title.equals(item.title); + public boolean equals(Object arg) { + var item = (SuperAppItem) arg; + return this.type.equals(item.type) && this.title.equals(item.title); } } diff --git a/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java b/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java index 56fb8e178..1a7f1c382 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java +++ b/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java @@ -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; diff --git a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java index 7e939d193..fb80ca22f 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java +++ b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java @@ -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;