Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60644476 authored by Brandon Liu's avatar Brandon Liu
Browse files

Adding more logging in VersionCollapser for better debugging

Bug: b/319844770
Test: Verified affected tests pass
Change-Id: If2cdb1184502e547a3a4890d8aa7c83b20cb0cf8
parent 982d9a38
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ FilterIterator<Iterator, Pred> make_filter_iterator(Iterator begin,
 * exception is when there is no exact matching resource for the minSdk. The next smallest one will
 * be kept.
 */
static void CollapseVersions(int min_sdk, ResourceEntry* entry) {
static void CollapseVersions(IAaptContext* context, int min_sdk, ResourceEntry* entry) {
  // First look for all sdks less than minSdk.
  for (auto iter = entry->values.rbegin(); iter != entry->values.rend();
       ++iter) {
@@ -102,7 +102,14 @@ static void CollapseVersions(int min_sdk, ResourceEntry* entry) {
      auto filter_iter =
          make_filter_iterator(iter + 1, entry->values.rend(), pred);
      while (filter_iter.HasNext()) {
        filter_iter.Next() = {};
        auto& next = filter_iter.Next();
        if (context->IsVerbose()) {
          context->GetDiagnostics()->Note(android::DiagMessage()
                                          << "removing configuration " << next->config.to_string()
                                          << " for entry: " << entry->name
                                          << ", because its SDK version is smaller than minSdk");
        }
        next = {};
      }
    }
  }
@@ -126,6 +133,12 @@ static void CollapseVersions(int min_sdk, ResourceEntry* entry) {
          util::make_unique<ResourceConfigValue>(
              config_value->config.CopyWithoutSdkVersion(),
              config_value->product);
      if (context->IsVerbose()) {
        context->GetDiagnostics()->Note(android::DiagMessage()
                                        << "overriding resource: " << entry->name
                                        << ", removing SDK version from configuration "
                                        << config_value->config.to_string());
      }
      new_value->value = std::move(config_value->value);
      config_value = std::move(new_value);

@@ -147,10 +160,14 @@ static void CollapseVersions(int min_sdk, ResourceEntry* entry) {
bool VersionCollapser::Consume(IAaptContext* context, ResourceTable* table) {
  TRACE_NAME("VersionCollapser::Consume");
  const int min_sdk = context->GetMinSdkVersion();
  if (context->IsVerbose()) {
    context->GetDiagnostics()->Note(android::DiagMessage()
                                    << "Running VersionCollapser with minSdk = " << min_sdk);
  }
  for (auto& package : table->packages) {
    for (auto& type : package->types) {
      for (auto& entry : type->entries) {
        CollapseVersions(min_sdk, entry.get());
        CollapseVersions(context, min_sdk, entry.get());
      }
    }
  }