private void removeResSpec(ResResSpec spec) throws AndrolibException { if (mPkg.hasResSpec(spec.getId())) { mPkg.removeResSpec(spec); mTypeSpec.removeResSpec(spec); } }
public void replace(ResValue value) throws AndrolibException { ResResource res = new ResResource(mConfig, mResSpec, value); mConfig.addResource(res, true); mResSpec.addResource(res, true); }
public boolean isFrameworkApk(ResTable resTable) { for (ResPackage pkg : resTable.listMainPackages()) { if (pkg.getId() < 64) { return true; } } return false; }
public ResValue getValue(String package_, String type, String name) throws AndrolibException { return getPackage(package_).getType(type).getResSpec(name).getDefaultResource().getValue(); }
public String getFullName(boolean excludePackage, boolean excludeType) { return (excludePackage ? "" : getPackage().getName() + ":") + (excludeType ? "" : getType().getName() + "/") + getName(); }
public String getFilePath() { return mResSpec.getType().getName() + mConfig.getFlags().getQualifiers() + "/" + mResSpec.getName(); }
public boolean isSynthesized(ResResource res) { return mPackage.isSynthesized(res.getResSpec().getId()); }
public String getFullName(ResPackage relativeToPackage, boolean excludeType) { return getFullName(getPackage().equals(relativeToPackage), excludeType); }
public String decodeManifestAttr(int attrResId) throws AndrolibException { if (attrResId != 0) { ResResSpec resResSpec = getCurrentPackage().getResTable().getResSpec(attrResId); if (resResSpec != null) { return resResSpec.getName(); } } return null; }
@Override public void serializeToResValuesXml(XmlSerializer serializer, ResResource res) throws IOException, AndrolibException { serializer.startTag(null, "item"); serializer .attribute(null, "type", res.getResSpec().getType().getName()); serializer.attribute(null, "name", res.getResSpec().getName()); serializer.endTag(null, "item"); } }
public ResResSpec getResSpec(int resID) throws AndrolibException { // The pkgId is 0x00. That means a shared library is using its // own resource, so lie to the caller replacing with its own // packageId if (resID >> 24 == 0) { int pkgId = (mPackageId == 0 ? 2 : mPackageId); resID = (0xFF000000 & (pkgId << 24)) | resID; } return getResSpec(new ResID(resID)); }
public ResResSpec getResSpec(ResID resID) throws AndrolibException { return getPackage(resID.package_).getResSpec(resID); }
public String getPath() { return "values" + mConfig.getFlags().getQualifiers() + "/" + mType.getName() + (mType.getName().endsWith("s") ? "" : "s") + ".xml"; }
public ResResource getDefaultResource() throws AndrolibException { return getResource(new ResConfigFlags()); }
public ResResource getResource(ResType config) throws AndrolibException { return getResource(config.getFlags()); }
public boolean hasResource(ResType config) { return hasResource(config.getFlags()); }
@Override public String toString() { return getFilePath(); } }
public int findPackageWithMostResSpecs() { int count = mPackages[0].getResSpecCount(); int id = 0; for (int i = 0; i < mPackages.length; i++) { if (mPackages[i].getResSpecCount() >= count) { count = mPackages[i].getResSpecCount(); id = i; } } return id; }
@Override public String toString() { return mFlags.toString(); } }