Changed: Use cached PackageInfo while getting version code and name for app

This commit is contained in:
agnostic-apollo
2021-10-18 15:51:39 +05:00
parent 2c6d009657
commit 65252dc640
2 changed files with 31 additions and 12 deletions

View File

@@ -316,11 +316,18 @@ public class PackageUtils {
*/ */
@Nullable @Nullable
public static Integer getVersionCodeForPackage(@NonNull final Context context, @NonNull final String packageName) { public static Integer getVersionCodeForPackage(@NonNull final Context context, @NonNull final String packageName) {
try { return getVersionCodeForPackage(getPackageInfoForPackage(context, packageName));
return getPackageInfoForPackage(context, packageName).versionCode; }
} catch (final Exception e) {
return null; /**
} * Get the {@code versionCode} for the {@code packageName}.
*
* @param packageInfo The {@link PackageInfo} for the package.
* @return Returns the {@code versionCode}. This will be {@code null} if an exception is raised.
*/
@Nullable
public static Integer getVersionCodeForPackage(@Nullable final PackageInfo packageInfo) {
return packageInfo != null? packageInfo.versionCode : null;
} }
@@ -335,6 +342,7 @@ public class PackageUtils {
public static String getVersionNameForPackage(@NonNull final Context context) { public static String getVersionNameForPackage(@NonNull final Context context) {
return getVersionNameForPackage(context, context.getPackageName()); return getVersionNameForPackage(context, context.getPackageName());
} }
/** /**
* Get the {@code versionName} for the {@code packageName}. * Get the {@code versionName} for the {@code packageName}.
* *
@@ -344,11 +352,19 @@ public class PackageUtils {
*/ */
@Nullable @Nullable
public static String getVersionNameForPackage(@NonNull final Context context, @NonNull final String packageName) { public static String getVersionNameForPackage(@NonNull final Context context, @NonNull final String packageName) {
try { return getVersionNameForPackage(getPackageInfoForPackage(context, packageName));
return getPackageInfoForPackage(context, packageName).versionName; }
} catch (final Exception e) {
return null; /**
} * Get the {@code versionName} for the {@code packageName}.
*
* @param packageInfo The {@link PackageInfo} for the package.
* @return Returns the {@code versionName}. This will be {@code null} if an {@code packageInfo}
* is {@code null}.
*/
@Nullable
public static String getVersionNameForPackage(@Nullable final PackageInfo packageInfo) {
return packageInfo != null? packageInfo.versionName : null;
} }

View File

@@ -3,6 +3,7 @@ package com.termux.shared.termux;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.os.Build; import android.os.Build;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@@ -65,6 +66,8 @@ public class AndroidUtils {
* @return Returns the markdown {@link String}. * @return Returns the markdown {@link String}.
*/ */
public static String getAppInfoMarkdownString(@NonNull final Context context, @NonNull final String packageName) { public static String getAppInfoMarkdownString(@NonNull final Context context, @NonNull final String packageName) {
PackageInfo packageInfo = PackageUtils.getPackageInfoForPackage(context, packageName);
if (packageInfo == null) return null;
ApplicationInfo applicationInfo = PackageUtils.getApplicationInfoForPackage(context, packageName); ApplicationInfo applicationInfo = PackageUtils.getApplicationInfoForPackage(context, packageName);
if (applicationInfo == null) return null; if (applicationInfo == null) return null;
@@ -72,8 +75,8 @@ public class AndroidUtils {
AndroidUtils.appendPropertyToMarkdown(markdownString,"APP_NAME", PackageUtils.getAppNameForPackage(context, applicationInfo)); AndroidUtils.appendPropertyToMarkdown(markdownString,"APP_NAME", PackageUtils.getAppNameForPackage(context, applicationInfo));
AndroidUtils.appendPropertyToMarkdown(markdownString,"PACKAGE_NAME", PackageUtils.getPackageNameForPackage(applicationInfo)); AndroidUtils.appendPropertyToMarkdown(markdownString,"PACKAGE_NAME", PackageUtils.getPackageNameForPackage(applicationInfo));
AndroidUtils.appendPropertyToMarkdown(markdownString,"VERSION_NAME", PackageUtils.getVersionNameForPackage(context, packageName)); AndroidUtils.appendPropertyToMarkdown(markdownString,"VERSION_NAME", PackageUtils.getVersionNameForPackage(packageInfo));
AndroidUtils.appendPropertyToMarkdown(markdownString,"VERSION_CODE", PackageUtils.getVersionCodeForPackage(context, packageName)); AndroidUtils.appendPropertyToMarkdown(markdownString,"VERSION_CODE", PackageUtils.getVersionCodeForPackage(packageInfo));
AndroidUtils.appendPropertyToMarkdown(markdownString,"UID", PackageUtils.getUidForPackage(applicationInfo)); AndroidUtils.appendPropertyToMarkdown(markdownString,"UID", PackageUtils.getUidForPackage(applicationInfo));
AndroidUtils.appendPropertyToMarkdown(markdownString,"TARGET_SDK", PackageUtils.getTargetSDKForPackage(applicationInfo)); AndroidUtils.appendPropertyToMarkdown(markdownString,"TARGET_SDK", PackageUtils.getTargetSDKForPackage(applicationInfo));
AndroidUtils.appendPropertyToMarkdown(markdownString,"IS_DEBUGGABLE_BUILD", PackageUtils.isAppForPackageADebuggableBuild(applicationInfo)); AndroidUtils.appendPropertyToMarkdown(markdownString,"IS_DEBUGGABLE_BUILD", PackageUtils.isAppForPackageADebuggableBuild(applicationInfo));