package com.ichi2.utils; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import com.ichi2.anki.AnkiDroidApp; import timber.log.Timber; /** * Created by Tim on 11/04/2015. */ public class VersionUtils { /** * Get package name as defined in the manifest. */ public static String getAppName() { String pkgName = AnkiDroidApp.TAG; Context context = AnkiDroidApp.getInstance(); try { PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); pkgName = context.getString(pInfo.applicationInfo.labelRes); } catch (PackageManager.NameNotFoundException e) { Timber.e(e, "Couldn't find package named %s", context.getPackageName()); } return pkgName; } /** * Get the package versionName as defined in the manifest. */ public static String getPkgVersionName() { String pkgVersion = "?"; Context context = AnkiDroidApp.getInstance(); if (context != null) { try { PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); pkgVersion = pInfo.versionName; } catch (PackageManager.NameNotFoundException e) { Timber.e(e, "Couldn't find package named %s", context.getPackageName()); } } return pkgVersion; } /** * Get the package versionCode as defined in the manifest. */ public static int getPkgVersionCode() { Context context = AnkiDroidApp.getInstance(); try { PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); return pInfo.versionCode; } catch (PackageManager.NameNotFoundException e) { Timber.e(e, "Couldn't find package named %s", context.getPackageName()); } return 0; } /** * Return whether the package version code is set to that for release version * @return whether build number in manifest version code is '3' */ public static boolean isReleaseVersion() { String versionCode = Integer.toString(getPkgVersionCode()); return versionCode.charAt(versionCode.length()-3)=='3'; } }