package co.smartreceipts.android.settings.versions;
import android.content.Context;
import android.content.pm.PackageManager;
import android.support.annotation.NonNull;
import com.google.common.base.Preconditions;
import co.smartreceipts.android.settings.UserPreferenceManager;
import co.smartreceipts.android.utils.log.Logger;
public class AppVersionManager {
private static final String INT_VERSION_CODE = "VersionCode";
private final Context context;
private final UserPreferenceManager userPreferenceManager;
public AppVersionManager(@NonNull Context context, @NonNull UserPreferenceManager userPreferenceManager) {
this.context = Preconditions.checkNotNull(context);
this.userPreferenceManager = Preconditions.checkNotNull(userPreferenceManager);
}
public void onLaunch(@NonNull VersionUpgradedListener listener) {
Preconditions.checkNotNull(listener);
try {
final int newVersion = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;
final int oldVersion = userPreferenceManager.getSharedPreferences().getInt(INT_VERSION_CODE, -1);
if (newVersion > oldVersion) {
userPreferenceManager.getSharedPreferences().edit().putInt(INT_VERSION_CODE, newVersion).apply();
listener.onVersionUpgrade(oldVersion, newVersion);
}
} catch (PackageManager.NameNotFoundException e) {
Logger.error(this, e);
}
}
}