From 9431d72e72adceaabbd7de98691f90177f888f77 Mon Sep 17 00:00:00 2001 From: Ammar Githam Date: Thu, 10 Sep 2020 20:54:32 +0900 Subject: [PATCH] Search for telegram package only on demand --- .../instagrabber/InstaGrabberApplication.java | 4 ---- .../instagrabber/dialogs/AboutDialog.java | 8 ++++---- .../java/awais/instagrabber/utils/Utils.java | 18 ++++++++++-------- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/awais/instagrabber/InstaGrabberApplication.java b/app/src/main/java/awais/instagrabber/InstaGrabberApplication.java index f28e529b..85bd02be 100644 --- a/app/src/main/java/awais/instagrabber/InstaGrabberApplication.java +++ b/app/src/main/java/awais/instagrabber/InstaGrabberApplication.java @@ -25,11 +25,9 @@ import static awais.instagrabber.utils.CookieUtils.NET_COOKIE_MANAGER; import static awais.instagrabber.utils.Utils.clipboardManager; import static awais.instagrabber.utils.Utils.dataBox; import static awais.instagrabber.utils.Utils.datetimeParser; -import static awais.instagrabber.utils.Utils.getInstalledTelegramPackage; import static awais.instagrabber.utils.Utils.logCollector; import static awais.instagrabber.utils.Utils.notificationManager; import static awais.instagrabber.utils.Utils.settingsHelper; -import static awais.instagrabber.utils.Utils.telegramPackage; public final class InstaGrabberApplication extends MultiDexApplication { private static final String TAG = "InstaGrabberApplication"; @@ -61,8 +59,6 @@ public final class InstaGrabberApplication extends MultiDexApplication { final Context appContext = getApplicationContext(); - telegramPackage = getInstalledTelegramPackage(appContext); - if (dataBox == null) dataBox = DataBox.getInstance(appContext); diff --git a/app/src/main/java/awais/instagrabber/dialogs/AboutDialog.java b/app/src/main/java/awais/instagrabber/dialogs/AboutDialog.java index 3b6f8e54..b3203e40 100755 --- a/app/src/main/java/awais/instagrabber/dialogs/AboutDialog.java +++ b/app/src/main/java/awais/instagrabber/dialogs/AboutDialog.java @@ -37,10 +37,10 @@ public final class AboutDialog extends BottomSheetDialogFragment { final Intent intent = new Intent(Intent.ACTION_VIEW); if (v == btnTelegram) { intent.setData(Uri.parse("https://t.me/grabber_app")); - if (!TextUtils.isEmpty(Utils.telegramPackage)) - intent.setPackage(Utils.telegramPackage); - } - else if (v == btnMatrix) { + final String telegramPackage = Utils.getInstalledTelegramPackage(getContext()); + if (!TextUtils.isEmpty(telegramPackage)) + intent.setPackage(telegramPackage); + } else if (v == btnMatrix) { intent.setData(Uri.parse("https://matrix.to/#/#instagrabber:matrix.org")); } else intent.setData(Uri.parse("https://instagrabber.austinhuang.me")); diff --git a/app/src/main/java/awais/instagrabber/utils/Utils.java b/app/src/main/java/awais/instagrabber/utils/Utils.java index 02069b59..6d6f98a4 100755 --- a/app/src/main/java/awais/instagrabber/utils/Utils.java +++ b/app/src/main/java/awais/instagrabber/utils/Utils.java @@ -59,12 +59,13 @@ public final class Utils { public static NotificationManagerCompat notificationManager; public static final MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton(); public static boolean isChannelCreated = false; - public static String telegramPackage; public static ClipboardManager clipboardManager; public static DisplayMetrics displayMetrics = Resources.getSystem().getDisplayMetrics(); public static SimpleDateFormat datetimeParser; public static SimpleCache simpleCache; + private static String telegramPackage; + public static int convertDpToPx(final float dp) { if (displayMetrics == null) displayMetrics = Resources.getSystem().getDisplayMetrics(); @@ -282,7 +283,9 @@ public final class Utils { } @Nullable - public static String getInstalledTelegramPackage(@NonNull final Context context) { + public static String getInstalledTelegramPackage(@Nullable final Context context) { + if (telegramPackage != null) return telegramPackage; + if (context == null) return null; final String[] packages = { "org.telegram.messenger", "org.thunderdog.challegram", @@ -298,7 +301,6 @@ public final class Utils { "ml.parsgram", "com.ringtoon.app.tl", }; - final PackageManager packageManager = context.getPackageManager(); for (final String pkg : packages) { try { @@ -306,13 +308,13 @@ public final class Utils { if (packageInfo.applicationInfo.enabled) return pkg; } catch (final Exception e) { try { - if (packageManager.getApplicationInfo(pkg, 0).enabled) return pkg; - } catch (final Exception e1) { - // meh - } + if (packageManager.getApplicationInfo(pkg, 0).enabled) { + telegramPackage = pkg; + return pkg; + } + } catch (final Exception ignored) {} } } - return null; }