From d27d9227bcb2600e33753381c0841b09fc0841d7 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Thu, 2 Jun 2022 11:20:11 +0300 Subject: [PATCH] Refactoring of some code that suggested what to fix in the comments in our vk group --- .../TelegramStickersGrabber.java | 10 +-- .../main/java/ru/f0x1d/net/F0x1dRequest.java | 86 ------------------- .../java/ru/vtosters/lite/dnr/DNRModule.java | 2 +- .../vtosters/lite/f0x1d/VTVerifications.java | 10 ++- .../java/ru/vtosters/lite/foaf/FoafBase.java | 9 +- .../{f0x1d => vtosters/lite}/net/NetCall.java | 2 +- .../lite}/net/NetCallback.java | 2 +- .../lite}/net/NetClient.java | 2 +- .../lite}/net/NetRequest.java | 2 +- .../lite}/net/NetResponse.java | 2 +- .../java/ru/vtosters/lite/net/Request.java | 76 ++++++++++++++++ .../lite/ui/fragments/ThemesFragment.java | 10 ++- .../tgstickers/StickersFragment.java | 4 +- .../lite/utils/DeletedMessagesHandler.java | 15 +--- .../java/ru/vtosters/lite/utils/Globals.java | 76 ++++++++-------- .../ru/vtosters/lite/utils/IconHelper.java | 23 ----- .../ru/vtosters/lite/utils/SettBackup.java | 9 +- .../java/ru/vtosters/lite/utils/Themes.java | 18 ++-- app/src/main/res/values/strings.xml | 2 +- 19 files changed, 155 insertions(+), 205 deletions(-) delete mode 100644 app/src/main/java/ru/f0x1d/net/F0x1dRequest.java rename app/src/main/java/ru/{f0x1d => vtosters/lite}/net/NetCall.java (99%) rename app/src/main/java/ru/{f0x1d => vtosters/lite}/net/NetCallback.java (87%) rename app/src/main/java/ru/{f0x1d => vtosters/lite}/net/NetClient.java (98%) rename app/src/main/java/ru/{f0x1d => vtosters/lite}/net/NetRequest.java (97%) rename app/src/main/java/ru/{f0x1d => vtosters/lite}/net/NetResponse.java (96%) create mode 100644 app/src/main/java/ru/vtosters/lite/net/Request.java delete mode 100644 app/src/main/java/ru/vtosters/lite/utils/IconHelper.java diff --git a/app/src/main/java/com/aefyr/tsg/g2/stickersgrabber/TelegramStickersGrabber.java b/app/src/main/java/com/aefyr/tsg/g2/stickersgrabber/TelegramStickersGrabber.java index 8a1d8c947..590eeb805 100644 --- a/app/src/main/java/com/aefyr/tsg/g2/stickersgrabber/TelegramStickersGrabber.java +++ b/app/src/main/java/com/aefyr/tsg/g2/stickersgrabber/TelegramStickersGrabber.java @@ -27,11 +27,11 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import ru.f0x1d.net.NetCall; -import ru.f0x1d.net.NetCallback; -import ru.f0x1d.net.NetClient; -import ru.f0x1d.net.NetRequest; -import ru.f0x1d.net.NetResponse; +import ru.vtosters.lite.net.NetCall; +import ru.vtosters.lite.net.NetCallback; +import ru.vtosters.lite.net.NetClient; +import ru.vtosters.lite.net.NetRequest; +import ru.vtosters.lite.net.NetResponse; /** * Created by Aefyr on 11.05.2018. diff --git a/app/src/main/java/ru/f0x1d/net/F0x1dRequest.java b/app/src/main/java/ru/f0x1d/net/F0x1dRequest.java deleted file mode 100644 index 4e5315a21..000000000 --- a/app/src/main/java/ru/f0x1d/net/F0x1dRequest.java +++ /dev/null @@ -1,86 +0,0 @@ -package ru.f0x1d.net; - -import static ru.vtosters.lite.utils.Globals.getUserToken; - -import android.os.AsyncTask; - -import com.vk.core.network.Network; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; - -public class F0x1dRequest { - - public static void makeRequest(byte[] bArr, F0x1dRequestCallback f0x1dRequestCallback) { - new MakeRequestTask(bArr, f0x1dRequestCallback).execute(); - } - - public static void makeRequest(String str, F0x1dRequestCallback f0x1dRequestCallback) { - new MakeRequestTask(str.getBytes(), f0x1dRequestCallback).execute(); - } - - public static void makeRequestToaster(String str, F0x1dRequestCallback f0x1dRequestCallback, boolean z) { - new MakeRequestTask(str.getBytes(), f0x1dRequestCallback, true, !z).execute(); - } - - public interface F0x1dRequestCallback { - void onResponse(String str); - } - - private static class MakeRequestTask extends AsyncTask { - private final F0x1dRequestCallback callback; - private boolean mIsPut; - private boolean mIsVkToasterRequest; - private final byte[] url; - - public MakeRequestTask(byte[] bArr, F0x1dRequestCallback f0x1dRequestCallback) { - this.mIsVkToasterRequest = false; - this.mIsPut = false; - this.callback = f0x1dRequestCallback; - this.url = bArr; - } - - public MakeRequestTask(byte[] bArr, F0x1dRequestCallback f0x1dRequestCallback, boolean z, boolean z2) { - this.mIsVkToasterRequest = false; - this.mIsPut = false; - this.callback = f0x1dRequestCallback; - this.url = bArr; - this.mIsVkToasterRequest = z; - this.mIsPut = z2; - } - - public String doInBackground(Void... voidArr) { - try { - HttpURLConnection httpURLConnection = (HttpURLConnection) new URL(new String(this.url)).openConnection(); - httpURLConnection.setRequestMethod(this.mIsPut ? "PUT" : "GET"); - if (this.mIsVkToasterRequest) { - httpURLConnection.setRequestProperty("Token", getUserToken()); - } - if (!this.mIsVkToasterRequest) { - httpURLConnection.setRequestProperty("User-Agent", Network.a.a().a()); - } - httpURLConnection.setRequestProperty("Content-Type", this.mIsVkToasterRequest ? "Content-Type" : "application/x-www-form-urlencoded"); - BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream())); - StringBuffer stringBuffer = new StringBuffer(); - while (true) { - String readLine = bufferedReader.readLine(); - if (readLine != null) { - stringBuffer.append(readLine); - } else { - bufferedReader.close(); - return stringBuffer.toString(); - } - } - } catch (Exception e) { - return e.getLocalizedMessage(); - } - } - - public void onPostExecute(String str) { - super.onPostExecute(str); - this.callback.onResponse(str); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/ru/vtosters/lite/dnr/DNRModule.java b/app/src/main/java/ru/vtosters/lite/dnr/DNRModule.java index 6953570d7..0bf82d00d 100644 --- a/app/src/main/java/ru/vtosters/lite/dnr/DNRModule.java +++ b/app/src/main/java/ru/vtosters/lite/dnr/DNRModule.java @@ -1,6 +1,6 @@ package ru.vtosters.lite.dnr; -import static ru.f0x1d.net.F0x1dRequest.makeRequest; +import static ru.vtosters.lite.net.Request.makeRequest; import static ru.vtosters.lite.utils.Globals.getUserToken; import static ru.vtosters.lite.utils.Proxy.getApiCom; diff --git a/app/src/main/java/ru/vtosters/lite/f0x1d/VTVerifications.java b/app/src/main/java/ru/vtosters/lite/f0x1d/VTVerifications.java index a172945e6..f8e4a13d3 100644 --- a/app/src/main/java/ru/vtosters/lite/f0x1d/VTVerifications.java +++ b/app/src/main/java/ru/vtosters/lite/f0x1d/VTVerifications.java @@ -42,6 +42,7 @@ public class VTVerifications { public static void load(Context context) { mVerificationsCache = context.getSharedPreferences("vt_another_data", 0); + try { processArray(new JSONArray(getLoaded(VERIFICATIONS_KEY)), sVerificationsMap, null); processArray(new JSONArray(getLoaded(PROMETHEUS_KEY)), sPrometheusMap, null); @@ -53,7 +54,7 @@ public class VTVerifications { } Request request = new Request.Builder() - .url("https://gdlbo.net/vktoaster/getGalo4kiBatch") + .url("https://vtosters.app/vktoaster/getGalo4kiBatch") .a(RequestBody.a(MediaType.b("application/json; charset=UTF-8"), "{\"types\":[0,228,404,1337]}")) .build(); @@ -102,9 +103,7 @@ public class VTVerifications { } public static boolean hasPrometheus(int i) { - return sPrometheusMap.get(i) != null ? sPrometheusMap.get(i) : false; - } public static boolean isDeveloper(int i) { @@ -136,9 +135,11 @@ public class VTVerifications { if (jSONObject.optInt("verified", 0) == 1) { return true; } + if (!BooleanTrue("VT_Verification")) { return false; } + return isVerified((jSONObject.optString(NavigatorKeys.j) == null || (!jSONObject.optString(NavigatorKeys.j).equals("group") && !jSONObject.optString(NavigatorKeys.j).equals("page"))) ? jSONObject.optInt("id", 0) : -jSONObject.optInt("id", 0)); } @@ -146,9 +147,11 @@ public class VTVerifications { if (jSONObject.optInt("trending", 0) == 1) { return true; } + if (!BooleanTrue("VT_Fire")) { return false; } + return hasPrometheus((jSONObject.optString(NavigatorKeys.j) == null || (!jSONObject.optString(NavigatorKeys.j).equals("group") && !jSONObject.optString(NavigatorKeys.j).equals("page"))) ? jSONObject.optInt("id", 0) : -jSONObject.optInt("id", 0)); } @@ -156,6 +159,7 @@ public class VTVerifications { if (!BooleanTrue("VT_Dev")) { return false; } + return isDeveloper((jSONObject.optString(NavigatorKeys.j) == null || (!jSONObject.optString(NavigatorKeys.j).equals("group") && !jSONObject.optString(NavigatorKeys.j).equals("page"))) ? jSONObject.optInt("id", 0) : -jSONObject.optInt("id", 0)); } diff --git a/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java b/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java index 7a8de3a37..b1aadf503 100644 --- a/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java +++ b/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java @@ -25,8 +25,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import okhttp3.OkHttpClient; -import okhttp3.Request; -import ru.f0x1d.net.F0x1dRequest; +import ru.vtosters.lite.net.Request; public class FoafBase { private static final Pattern FOAF_REGEX = Pattern.compile(""); @@ -35,7 +34,7 @@ public class FoafBase { private static final OkHttpClient client = new OkHttpClient(); public static int GetLastSeenInt(int i) throws ParseException, IOException { - Matcher matcher = FOAF_REGEX_LAST_SEEN.matcher(client.newCall(new Request.Builder().url(getLink(i)).build()).b().body().string()); + Matcher matcher = FOAF_REGEX_LAST_SEEN.matcher(client.newCall(new okhttp3.Request.Builder().url(getLink(i)).build()).b().body().string()); if (!matcher.find()) { return 0; } @@ -67,8 +66,8 @@ public class FoafBase { progressDialog.setCancelable(false); progressDialog.show(); - F0x1dRequest.F0x1dRequestCallback callback = str -> FoafBase.lambdaLoadAndShow(progressDialog, context, i, str); - F0x1dRequest.makeRequest(getLink(i), callback); + Request.RequestCallback callback =str -> FoafBase.lambdaLoadAndShow(progressDialog, context, i, str); + Request.makeRequest(getLink(i), callback); } static void lambdaLoadAndShow(ProgressDialog progressDialog, Context context, int i, String str) { diff --git a/app/src/main/java/ru/f0x1d/net/NetCall.java b/app/src/main/java/ru/vtosters/lite/net/NetCall.java similarity index 99% rename from app/src/main/java/ru/f0x1d/net/NetCall.java rename to app/src/main/java/ru/vtosters/lite/net/NetCall.java index 9f79372cd..2750f94fe 100644 --- a/app/src/main/java/ru/f0x1d/net/NetCall.java +++ b/app/src/main/java/ru/vtosters/lite/net/NetCall.java @@ -1,4 +1,4 @@ -package ru.f0x1d.net; +package ru.vtosters.lite.net; import android.util.Base64; diff --git a/app/src/main/java/ru/f0x1d/net/NetCallback.java b/app/src/main/java/ru/vtosters/lite/net/NetCallback.java similarity index 87% rename from app/src/main/java/ru/f0x1d/net/NetCallback.java rename to app/src/main/java/ru/vtosters/lite/net/NetCallback.java index 890f5c2f7..e4f599303 100644 --- a/app/src/main/java/ru/f0x1d/net/NetCallback.java +++ b/app/src/main/java/ru/vtosters/lite/net/NetCallback.java @@ -1,4 +1,4 @@ -package ru.f0x1d.net; +package ru.vtosters.lite.net; import java.io.IOException; diff --git a/app/src/main/java/ru/f0x1d/net/NetClient.java b/app/src/main/java/ru/vtosters/lite/net/NetClient.java similarity index 98% rename from app/src/main/java/ru/f0x1d/net/NetClient.java rename to app/src/main/java/ru/vtosters/lite/net/NetClient.java index def921ffc..d3a89961e 100644 --- a/app/src/main/java/ru/f0x1d/net/NetClient.java +++ b/app/src/main/java/ru/vtosters/lite/net/NetClient.java @@ -1,4 +1,4 @@ -package ru.f0x1d.net; +package ru.vtosters.lite.net; import java.net.PasswordAuthentication; import java.net.Proxy; diff --git a/app/src/main/java/ru/f0x1d/net/NetRequest.java b/app/src/main/java/ru/vtosters/lite/net/NetRequest.java similarity index 97% rename from app/src/main/java/ru/f0x1d/net/NetRequest.java rename to app/src/main/java/ru/vtosters/lite/net/NetRequest.java index 2b0c5fa9b..4b3e1948d 100755 --- a/app/src/main/java/ru/f0x1d/net/NetRequest.java +++ b/app/src/main/java/ru/vtosters/lite/net/NetRequest.java @@ -1,4 +1,4 @@ -package ru.f0x1d.net; +package ru.vtosters.lite.net; import java.util.Map; import java.util.TreeMap; diff --git a/app/src/main/java/ru/f0x1d/net/NetResponse.java b/app/src/main/java/ru/vtosters/lite/net/NetResponse.java similarity index 96% rename from app/src/main/java/ru/f0x1d/net/NetResponse.java rename to app/src/main/java/ru/vtosters/lite/net/NetResponse.java index ba66888dd..4f9f68046 100755 --- a/app/src/main/java/ru/f0x1d/net/NetResponse.java +++ b/app/src/main/java/ru/vtosters/lite/net/NetResponse.java @@ -1,4 +1,4 @@ -package ru.f0x1d.net; +package ru.vtosters.lite.net; import java.io.ByteArrayInputStream; import java.io.InputStream; diff --git a/app/src/main/java/ru/vtosters/lite/net/Request.java b/app/src/main/java/ru/vtosters/lite/net/Request.java new file mode 100644 index 000000000..10d0bdcb3 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/net/Request.java @@ -0,0 +1,76 @@ +package ru.vtosters.lite.net; + +import static ru.vtosters.lite.utils.Globals.getUserToken; + +import android.os.AsyncTask; + +import com.vk.core.network.Network; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +public class Request { + public static void makeRequest(byte[] bArr, RequestCallback RequestCallback) { + new MakeRequestTask(bArr, RequestCallback).execute(); + } + + public static void makeRequest(String str, RequestCallback RequestCallback) { + new MakeRequestTask(str.getBytes(), RequestCallback).execute(); + } + + public interface RequestCallback { + void onResponse(String str); + } + + private static class MakeRequestTask extends AsyncTask { + private final RequestCallback callback; + private boolean mIsPut; + private boolean mIsVTostersRequest; + private final byte[] url; + + public MakeRequestTask(byte[] bArr, RequestCallback RequestCallback) { + mIsVTostersRequest = false; + mIsPut = false; + callback = RequestCallback; + url = bArr; + } + + public String doInBackground(Void... voidArr) { + try { + HttpURLConnection httpURLConnection = (HttpURLConnection) new URL(new String(url)).openConnection(); + httpURLConnection.setRequestMethod(mIsPut ? "PUT" : "GET"); + + if (mIsVTostersRequest) { + httpURLConnection.setRequestProperty("Token", getUserToken()); + } + if (!mIsVTostersRequest) { + httpURLConnection.setRequestProperty("User-Agent", Network.a.a().a()); + } + + httpURLConnection.setRequestProperty("Content-Type", mIsVTostersRequest ? "Content-Type" : "application/x-www-form-urlencoded"); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream())); + + StringBuffer stringBuffer = new StringBuffer(); + while (true) { + String readLine = bufferedReader.readLine(); + if (readLine != null) { + stringBuffer.append(readLine); + } else { + bufferedReader.close(); + return stringBuffer.toString(); + } + } + + } catch (Exception e) { + return e.getLocalizedMessage(); + } + } + + public void onPostExecute(String str) { + super.onPostExecute(str); + callback.onResponse(str); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java index e434117a8..65992ddc5 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java @@ -1,8 +1,7 @@ package ru.vtosters.lite.ui.fragments; +import static ru.vtosters.lite.utils.Globals.componentSwitcher; import static ru.vtosters.lite.utils.Globals.getString; -import static ru.vtosters.lite.utils.IconHelper.switchToDefault; -import static ru.vtosters.lite.utils.IconHelper.switchToVK; import android.os.Bundle; import android.support.v7.preference.Preference; @@ -22,10 +21,13 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment { public boolean apply(Preference preference, Object obj) { if (((Boolean) obj).booleanValue()) { - switchToVK(); + componentSwitcher("VTIconDefault", true); + componentSwitcher("VTIconVK", false); } else { - switchToDefault(); + componentSwitcher("VTIconDefault", false); + componentSwitcher("VTIconVK", true); } + ToastUtils.a(getString("iconapplying")); return true; } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java index cf1a97122..450bf3732 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java @@ -60,7 +60,7 @@ public class StickersFragment extends ToolbarFragment { public final static String ACTION_RELOAD = "com.vtosters.lite.action.RELOAD_TGS_LIST"; - private final static int TYPE_DIRECT = 0, TYPE_SOCKS = 2, TYPE_TOASTER_SERVER = 3; + private final static int TYPE_DIRECT = 0, TYPE_SOCKS = 2; private static final String TAG = "StickersFragment"; public int from; public int to; @@ -97,7 +97,6 @@ public class StickersFragment extends ToolbarFragment { private void initGrabber() { int method = TGPref.getTGConnectMethod(); switch (method) { - case TYPE_TOASTER_SERVER: case TYPE_DIRECT: TelegramStickersGrabber.USE_PROXY = false; grabber.resetProxy(); @@ -251,7 +250,6 @@ public class StickersFragment extends ToolbarFragment { openMenu(getString("stickersproxy1")); return; } - case TYPE_TOASTER_SERVER: case TYPE_DIRECT: final Runnable work = () -> { LinearLayout linearLayout = new LinearLayout(super.n()); diff --git a/app/src/main/java/ru/vtosters/lite/utils/DeletedMessagesHandler.java b/app/src/main/java/ru/vtosters/lite/utils/DeletedMessagesHandler.java index a32c4e7fb..022e44c35 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/DeletedMessagesHandler.java +++ b/app/src/main/java/ru/vtosters/lite/utils/DeletedMessagesHandler.java @@ -9,6 +9,7 @@ import android.database.Cursor; import android.database.sqlite.SQLiteOpenHelper; import android.text.TextUtils; +import com.vk.core.ui.themes.VKTheme; import com.vk.im.engine.events.OnMsgUpdateEvent; import com.vk.im.engine.internal.longpoll.a.MsgDeleteLpTask; import com.vk.im.engine.internal.storage.CacheEnvironment; @@ -25,7 +26,6 @@ import java.util.List; import ru.vtosters.lite.encryption.EncryptProvider; public class DeletedMessagesHandler { - private static List sDeletedMessagesList = new ArrayList<>(); private static SQLiteDatabase sVKSQLiteDatabase; @@ -76,17 +76,7 @@ public class DeletedMessagesHandler { } private static String getPreifxUndelete() { - String string = getPrefsValue("undeletemsg_prefix"); - if (string.isEmpty()) { - return "[Удалено] "; - } - if (string.equals("icon")) { - return "\uD83D\uDDD1 "; - } - if (string.equals("icon2")) { - return "❌ "; - } - return "[Удалено] "; + return getPrefsValue("undeletemsg_prefix") + " "; } public static void updateDialog(MsgDeleteLpTask msgDeleteLpTask) { @@ -128,7 +118,6 @@ public class DeletedMessagesHandler { } public static class DeletedMessagesDBHelper extends SQLiteOpenHelper { - public DeletedMessagesDBHelper() { super(getContext(), "deleted_msgs", null, 1); } diff --git a/app/src/main/java/ru/vtosters/lite/utils/Globals.java b/app/src/main/java/ru/vtosters/lite/utils/Globals.java index 30783e4ab..fd42cb30e 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Globals.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Globals.java @@ -6,6 +6,7 @@ import android.app.Activity; import android.app.Application; import android.app.NotificationChannel; import android.app.NotificationManager; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -33,7 +34,6 @@ import java.util.Locale; public class Globals { private static final List activities = new ArrayList<>(); - static SharedPreferences prefs = getContext().getSharedPreferences("com.vtosters.lite_preferences", Context.MODE_PRIVATE); public static SharedPreferences getPrefs() { @@ -41,15 +41,18 @@ public class Globals { return prefs; } - // Get pref value as string + public static void componentSwitcher(String component, Boolean enabled) { + var packageManager = getContext().getPackageManager(); + packageManager.setComponentEnabledSetting(new ComponentName(getPackageName(), getPackageName() + "." + component), enabled? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); + } // Component switcher for changing app icon + public static String getPrefsValue(String pref) { return getPreferences().getString(pref, ""); - } + } // Get pref value as string - // Current UserId public static int getUserId() { return VKAccountManager.b().a(); - } + } // Current UserId public static String getUserSecret() { return VKAccountManager.b().c(); @@ -59,20 +62,17 @@ public class Globals { return VKAccountManager.b().b(); } - // Edit SharedPreferences public static SharedPreferences.Editor edit() { return PreferenceManager.getDefaultSharedPreferences(getContext()).edit(); - } + } // Edit SharedPreferences - // Delete and reload msg cache public static void reloadMSG() { ImEngineProvider.a().h(); - } + } // Delete and reload msg cache - // UserId Profile via userProfile public static int getUserID(UserProfile userProfile) { return userProfile.n; - } + } // UserId Profile via userProfile public static String getUserFirstName(UserProfile userProfile) { return userProfile.p; @@ -82,26 +82,25 @@ public class Globals { return userProfile.o; } - // UserId Profile via extendedUserProfile public static int getUserID(ExtendedUserProfile extendedUserProfile) { return getUserID(fromEup(extendedUserProfile)); - } + } // UserId Profile via extendedUserProfile public static UserProfile fromEup(ExtendedUserProfile extendedUserProfile) { return extendedUserProfile.a; } - // Application restart (works on sdk 29+ too) public static void restartApplication() { Context ctx = getContext(); PackageManager pm = ctx.getPackageManager(); + Intent intent = pm.getLaunchIntentForPackage(ctx.getPackageName()); Intent mainIntent = Intent.makeRestartActivityTask(intent.getComponent()); ctx.startActivity(mainIntent); - Runtime.getRuntime().exit(0); - } - // Global Context + Runtime.getRuntime().exit(0); + } // Application restart (works on sdk 29+ too) + @NonNull public static Context getContext() { try { @@ -113,9 +112,9 @@ public class Globals { e.printStackTrace(); } return null; - } + } // Getting the global context through reflection to use context on application initialization + - // Google Market Services check public static boolean isGmsInstalled() { try { getContext().getPackageManager().getPackageInfo("com.google.android.gms", 0); @@ -123,23 +122,19 @@ public class Globals { } catch (Exception unused) { return false; } - } + } // Google Market Services check public static Resources getResources() { return getContext().getResources(); } - // Get res id - // "res name", "res type" - public static int getIdentifier(String str, String str2) { - return getResources().getIdentifier(str, str2, getContext().getPackageName()); - } + public static int getIdentifier(String name, String type) { + return getResources().getIdentifier(name, type, getContext().getPackageName()); + } // Get res id - // Get string via getIdentifier - // "string name in res" - public static String getString(String str) { - return getContext().getString(Integer.parseInt(String.valueOf(getContext().getResources().getIdentifier(str, "string", getContext().getPackageName())))); - } + public static String getString(String resourcename) { + return getContext().getString(Integer.parseInt(String.valueOf(getContext().getResources().getIdentifier(resourcename, "string", getContext().getPackageName())))); + } // Get string via getIdentifier public static String getPackageName() { return getContext().getPackageName(); @@ -161,33 +156,29 @@ public class Globals { return str == null || str.isEmpty(); } - // Network check public static boolean isNetworkConnected() { ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); return activeNetwork != null && activeNetwork.isConnectedOrConnecting(); - } + } // Network check - // Music channels fix public static void fixGapps() { try { if (Build.VERSION.SDK_INT >= 26) { NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE); boolean hasMusicChannel = false; + try { if (notificationManager.getNotificationChannel("audio_playback_channel") != null) { hasMusicChannel = true; } - } catch (Exception ignored) { - } + } catch (Exception ignored) {} if (!hasMusicChannel) { notificationManager.createNotificationChannel(new NotificationChannel("audio_playback_channel", getResources().getString(com.vtosters.lite.R.string.audio_message_play_error), NotificationManager.IMPORTANCE_LOW)); } } - } catch (Exception ignored) { - } - } - + } catch (Exception ignored) {} + } // Music channels fix public static void registerActivities(Application application) { application.registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() { @@ -234,22 +225,25 @@ public class Globals { return getContext().getApplicationInfo().loadLabel(getContext().getPackageManager()).toString(); } - // Language changer and BaseContext inject public static Context BaseContextLocale(Context context) { Locale locale = new Locale(getLocale()); Locale.setDefault(locale); + var resources = context.getResources(); var configuration = resources.getConfiguration(); + if (Build.VERSION.SDK_INT >= 24) { configuration.setLocale(locale); configuration.setLayoutDirection(locale); return context.createConfigurationContext(configuration); } + configuration.locale = locale; configuration.setLayoutDirection(locale); resources.updateConfiguration(configuration, resources.getDisplayMetrics()); + return context; - } + } // Language changer and BaseContext injector public static float[] getCenterScreenCoords() { int width = getResources().getDisplayMetrics().widthPixels; diff --git a/app/src/main/java/ru/vtosters/lite/utils/IconHelper.java b/app/src/main/java/ru/vtosters/lite/utils/IconHelper.java deleted file mode 100644 index 527121079..000000000 --- a/app/src/main/java/ru/vtosters/lite/utils/IconHelper.java +++ /dev/null @@ -1,23 +0,0 @@ -package ru.vtosters.lite.utils; - -import static ru.vtosters.lite.utils.Globals.getContext; -import static ru.vtosters.lite.utils.Globals.getPackageName; - -import android.content.ComponentName; -import android.content.pm.PackageManager; - -public class IconHelper { - public static void switchToVK() { - var packageManager = getContext().getPackageManager(); - var packageName = getPackageName(); - packageManager.setComponentEnabledSetting(new ComponentName(packageName, getPackageName() + ".VTIconDefault"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); - packageManager.setComponentEnabledSetting(new ComponentName(packageName, getPackageName() + ".VTIconVK"), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); - } - - public static void switchToDefault() { - var packageManager = getContext().getPackageManager(); - var packageName = getPackageName(); - packageManager.setComponentEnabledSetting(new ComponentName(packageName, getPackageName() + ".VTIconDefault"), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); - packageManager.setComponentEnabledSetting(new ComponentName(packageName, getPackageName() + ".VTIconVK"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); - } -} diff --git a/app/src/main/java/ru/vtosters/lite/utils/SettBackup.java b/app/src/main/java/ru/vtosters/lite/utils/SettBackup.java index 4e00ebfd6..083b2da6d 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/SettBackup.java +++ b/app/src/main/java/ru/vtosters/lite/utils/SettBackup.java @@ -8,7 +8,6 @@ import static android.widget.Toast.makeText; import static ru.vtosters.lite.utils.Globals.getContext; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; import android.util.Base64; @@ -32,7 +31,7 @@ public class SettBackup { public static void backupSettings() { SimpleDateFormat date = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()); String currentDateandTime = date.format(new Date()); - var directory = getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS) + "/VTLBackup_" + currentDateandTime + ".txt"; + var directory = getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS + "/VTLBackups/") + "/Backup_" + currentDateandTime + ".txt"; var file = new File(directory); try { var exists = file.createNewFile(); @@ -63,9 +62,7 @@ public class SettBackup { } public static void restoreBackup() { - Intent intent = new Intent(); - intent.setAction(Intent.ACTION_GET_CONTENT); - intent.setType("text/plain"); - getContext().startActivity(intent); + File dir = new File(getExternalStoragePublicDirectory(DIRECTORY_DOWNLOADS + "/VTLBackups/").getPath());; + // TODO Make restore backup from file list } } diff --git a/app/src/main/java/ru/vtosters/lite/utils/Themes.java b/app/src/main/java/ru/vtosters/lite/utils/Themes.java index 67efc80e3..1c95ee535 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Themes.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Themes.java @@ -27,6 +27,11 @@ import com.vk.im.ui.themes.ImThemeHelper; import com.vtosters.lite.R; public class Themes { + public static void applyTheme(VKTheme theme, ImTheme imtheme) { + VKThemeHelper.b.a(theme); // VKThemeHelper.b.a(VKTheme value) VK Theme apply + ImThemeHelper.b.a(imtheme); // ImThemeHelper.b.a(ImTheme value) VK Theme Msg apply + } // Apply VKTheme and ImTheme (hard applying without dynamic theme changing) + public static int getAccentColor() { return VKThemeHelper.a(R.attr.accent); } // Color accent @@ -155,7 +160,7 @@ public class Themes { return null; } return ColorStateList.valueOf(getAccentColor()); - } + } // Recolor ColorStateList to accent color public static int getColor(Context context, int i) { if (isColorRefAccented(i) && isAndroidMonet()) { @@ -226,19 +231,14 @@ public class Themes { int currentNightMode = getContext().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; switch (currentNightMode) { case Configuration.UI_MODE_NIGHT_UNDEFINED: - changeTheme(getLightTheme(), getImLightTheme()); + applyTheme(getLightTheme(), getImLightTheme()); break; case Configuration.UI_MODE_NIGHT_NO: - changeTheme(getLightTheme(), getImLightTheme()); + applyTheme(getLightTheme(), getImLightTheme()); break; case Configuration.UI_MODE_NIGHT_YES: - changeTheme(getDarkTheme(), getImDarkTheme()); + applyTheme(getDarkTheme(), getImDarkTheme()); break; } } - - public static void changeTheme(VKTheme theme, ImTheme imtheme) { - VKThemeHelper.b.a(theme); // VKThemeHelper.b.a(VKTheme value) VK Theme apply - ImThemeHelper.b.a(imtheme); // ImThemeHelper.b.a(ImTheme value) VK Theme Msg apply - } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0feaadff9..abd4ec34c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,3 @@ - Vtoasters Shit + VTosters Lite \ No newline at end of file