@Nullable @Override public synchronized String getVersionName(@NonNull File manifestFile) { if (mVersionName == null) { mVersionName = Optional.fromNullable( getStringValue(manifestFile, "/manifest/@android:versionName")); } return mVersionName.orNull(); }
@Nullable @Override public synchronized String getPackage(@NonNull File manifestFile) { if (mPackage == null) { mPackage = Optional.fromNullable(getStringValue(manifestFile, "/manifest/@package")); } return mPackage.orNull(); }
@Override @NonNull public synchronized int getVersionCode(@NonNull File manifestFile) { if (mVersionCode == null) { mVersionCode = Optional.absent(); try { String value = getStringValue(manifestFile, "/manifest/@android:versionCode"); if (value != null) { mVersionCode = Optional.of(Integer.valueOf(value)); } } catch (NumberFormatException ignored) { } } return mVersionCode.or(-1); }