Search for telegram package only on demand

This commit is contained in:
Ammar Githam 2020-09-10 20:54:32 +09:00
parent 80044b5daf
commit 9431d72e72
3 changed files with 14 additions and 16 deletions

View File

@ -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);

View File

@ -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"));

View File

@ -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;
}