VintfObject: load /vendor/etc/vintf/cm.xml before /vendor/cm.xml
cm => compatibility_matrix
Test: vintf_object_test
Bug: 36790901
Change-Id: Id62cbd1a2a7612c0fbf15adce39dbef67a4c18a8
diff --git a/VintfObject.cpp b/VintfObject.cpp
index 4a3e235..b852665 100644
--- a/VintfObject.cpp
+++ b/VintfObject.cpp
@@ -88,8 +88,7 @@
// static
std::shared_ptr<const CompatibilityMatrix> VintfObject::GetDeviceCompatibilityMatrix(bool skipCache) {
static LockedSharedPtr<CompatibilityMatrix> gDeviceMatrix;
- return Get(&gDeviceMatrix, skipCache,
- std::bind(&CompatibilityMatrix::fetchAllInformation, _1, kVendorLegacyMatrix, _2));
+ return Get(&gDeviceMatrix, skipCache, &VintfObject::FetchDeviceMatrix);
}
// static
@@ -234,6 +233,15 @@
return out->fetchAllInformation(kVendorLegacyManifest, error);
}
+status_t VintfObject::FetchDeviceMatrix(CompatibilityMatrix* out, std::string* error) {
+ CompatibilityMatrix etcMatrix;
+ if (etcMatrix.fetchAllInformation(kVendorMatrix, error) == OK) {
+ *out = std::move(etcMatrix);
+ return OK;
+ }
+ return out->fetchAllInformation(kVendorLegacyMatrix, error);
+}
+
std::vector<Named<CompatibilityMatrix>> VintfObject::GetAllFrameworkMatrixLevels(
std::string* error) {
std::vector<std::string> fileNames;
@@ -510,6 +518,7 @@
const std::string kVendorManifest = kVendorVintfDir + "manifest.xml";
const std::string kSystemManifest = kSystemVintfDir + "manifest.xml";
+const std::string kVendorMatrix = kVendorVintfDir + "compatibility_matrix.xml";
const std::string kVendorLegacyManifest = "/vendor/manifest.xml";
const std::string kVendorLegacyMatrix = "/vendor/compatibility_matrix.xml";