package com.v7lin.android.env;
import java.io.File;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.text.TextUtils;
/**
*
*
* @author v7lin E-mail:v7lin@qq.com
*/
public class VerSkinChecker implements SkinChecker {
private final int mVer;
private final boolean mCheckPkg;
private VerSkinChecker(int ver, boolean checkPkg) {
super();
mVer = ver;
mCheckPkg = checkPkg;
}
@Override
public boolean isSkinValid(Context context, String skinPath) {
boolean isValid = false;
if (!TextUtils.isEmpty(skinPath)) {
final File skinFile = new File(skinPath);
if (skinFile.exists() && skinFile.isFile()) {
PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageArchiveInfo(skinFile.getAbsolutePath(), PackageManager.GET_ACTIVITIES);
if (mCheckPkg) {
isValid = TextUtils.equals(context.getPackageName(), info.packageName) && info.versionCode == mVer;
} else {
isValid = info.versionCode == mVer;
}
}
}
return isValid;
}
public static VerSkinChecker newInstance(int ver, boolean checkPkg) {
return new VerSkinChecker(ver, checkPkg);
}
}