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

Commit fe3d8f6f authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "[res] Start using ftl::SmallVector<> where it's most useful"" into main

parents a36f5b8e 1a1d4993
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -444,7 +444,7 @@ bool AssetManager2::ContainsAllocatedTable() const {
  return false;
}

void AssetManager2::SetConfigurations(std::span<const ResTable_config> configurations,
void AssetManager2::SetConfigurations(std::vector<ResTable_config> configurations,
    bool force_refresh) {
  int diff = 0;
  if (force_refresh) {
@@ -459,10 +459,7 @@ void AssetManager2::SetConfigurations(std::span<const ResTable_config> configura
    }
  }

  configurations_.clear();
  for (auto&& config : configurations) {
    configurations_.emplace_back(config);
  }
  configurations_ = std::move(configurations);
  if (diff) {
    RebuildFilterList();
    InvalidateCaches(static_cast<uint32_t>(diff));
+3 −5
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@
#include "androidfw/AssetManager.h"
#include "androidfw/ResourceTypes.h"
#include "androidfw/Util.h"
#include "ftl/small_vector.h"

namespace android {

@@ -158,10 +157,9 @@ class AssetManager2 {

  // Sets/resets the configuration for this AssetManager. This will cause all
  // caches that are related to the configuration change to be invalidated.
  void SetConfigurations(std::span<const ResTable_config> configurations,
                         bool force_refresh = false);
  void SetConfigurations(std::vector<ResTable_config> configurations, bool force_refresh = false);

  std::span<const ResTable_config> GetConfigurations() const {
  inline const std::vector<ResTable_config>& GetConfigurations() const {
    return configurations_;
  }

@@ -486,7 +484,7 @@ class AssetManager2 {

  // The current configurations set for this AssetManager. When this changes, cached resources
  // may need to be purged.
  ftl::SmallVector<ResTable_config, 1> configurations_;
  std::vector<ResTable_config> configurations_;

  int32_t display_id_;
  int32_t device_id_;
+10 −10
Original line number Diff line number Diff line
@@ -120,7 +120,7 @@ TEST_F(AssetManager2Test, FindsResourceFromSingleApkAssets) {
  desired_config.language[1] = 'e';

  AssetManager2 assetmanager;
  assetmanager.SetConfigurations({{desired_config}});
  assetmanager.SetConfigurations({desired_config});
  assetmanager.SetApkAssets({basic_assets_});

  auto value = assetmanager.GetResource(basic::R::string::test1);
@@ -144,7 +144,7 @@ TEST_F(AssetManager2Test, FindsResourceFromMultipleApkAssets) {
  desired_config.language[1] = 'e';

  AssetManager2 assetmanager;
  assetmanager.SetConfigurations({{desired_config}});
  assetmanager.SetConfigurations({desired_config});
  assetmanager.SetApkAssets({basic_assets_, basic_de_fr_assets_});

  auto value = assetmanager.GetResource(basic::R::string::test1);
@@ -473,10 +473,10 @@ TEST_F(AssetManager2Test, ResolveDeepIdReference) {
TEST_F(AssetManager2Test, DensityOverride) {
  AssetManager2 assetmanager;
  assetmanager.SetApkAssets({basic_assets_, basic_xhdpi_assets_, basic_xxhdpi_assets_});
  assetmanager.SetConfigurations({{{
  assetmanager.SetConfigurations({{
    .density = ResTable_config::DENSITY_XHIGH,
    .sdkVersion = 21,
  }}});
  }});

  auto value = assetmanager.GetResource(basic::R::string::density, false /*may_be_bag*/);
  ASSERT_TRUE(value.has_value());
@@ -728,7 +728,7 @@ TEST_F(AssetManager2Test, GetLastPathWithoutEnablingReturnsEmpty) {
  ResTable_config desired_config;

  AssetManager2 assetmanager;
  assetmanager.SetConfigurations({{desired_config}});
  assetmanager.SetConfigurations({desired_config});
  assetmanager.SetApkAssets({basic_assets_});
  assetmanager.SetResourceResolutionLoggingEnabled(false);

@@ -743,7 +743,7 @@ TEST_F(AssetManager2Test, GetLastPathWithoutResolutionReturnsEmpty) {
  ResTable_config desired_config;

  AssetManager2 assetmanager;
  assetmanager.SetConfigurations({{desired_config}});
  assetmanager.SetConfigurations({desired_config});
  assetmanager.SetApkAssets({basic_assets_});

  auto result = assetmanager.GetLastResourceResolution();
@@ -758,7 +758,7 @@ TEST_F(AssetManager2Test, GetLastPathWithSingleApkAssets) {

  AssetManager2 assetmanager;
  assetmanager.SetResourceResolutionLoggingEnabled(true);
  assetmanager.SetConfigurations({{desired_config}});
  assetmanager.SetConfigurations({desired_config});
  assetmanager.SetApkAssets({basic_assets_});

  auto value = assetmanager.GetResource(basic::R::string::test1);
@@ -781,7 +781,7 @@ TEST_F(AssetManager2Test, GetLastPathWithMultipleApkAssets) {

  AssetManager2 assetmanager;
  assetmanager.SetResourceResolutionLoggingEnabled(true);
  assetmanager.SetConfigurations({{desired_config}});
  assetmanager.SetConfigurations({desired_config});
  assetmanager.SetApkAssets({basic_assets_, basic_de_fr_assets_});

  auto value = assetmanager.GetResource(basic::R::string::test1);
@@ -803,7 +803,7 @@ TEST_F(AssetManager2Test, GetLastPathAfterDisablingReturnsEmpty) {

  AssetManager2 assetmanager;
  assetmanager.SetResourceResolutionLoggingEnabled(true);
  assetmanager.SetConfigurations({{desired_config}});
  assetmanager.SetConfigurations({desired_config});
  assetmanager.SetApkAssets({basic_assets_});

  auto value = assetmanager.GetResource(basic::R::string::test1);
@@ -824,7 +824,7 @@ TEST_F(AssetManager2Test, GetOverlayablesToString) {

  AssetManager2 assetmanager;
  assetmanager.SetResourceResolutionLoggingEnabled(true);
  assetmanager.SetConfigurations({{desired_config}});
  assetmanager.SetConfigurations({desired_config});
  assetmanager.SetApkAssets({overlayable_assets_});

  const auto map = assetmanager.GetOverlayableMapForPackage(0x7f);
+1 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ void GetResourceBenchmark(const std::vector<std::string>& paths, const ResTable_
  AssetManager2 assetmanager;
  assetmanager.SetApkAssets(apk_assets);
  if (config != nullptr) {
    assetmanager.SetConfigurations({{{*config}}});
    assetmanager.SetConfigurations({*config});
  }

  while (state.KeepRunning()) {
+1 −1
Original line number Diff line number Diff line
@@ -260,7 +260,7 @@ TEST_F(ThemeTest, ThemeRebase) {
  ResTable_config night{};
  night.uiMode = ResTable_config::UI_MODE_NIGHT_YES;
  night.version = 8u;
  am_night.SetConfigurations({{night}});
  am_night.SetConfigurations({night});

  auto theme = am.NewTheme();
  {