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

Commit 469b1663 authored by Jeremy Meyer's avatar Jeremy Meyer Committed by Android (Google) Code Review
Browse files

Merge "Allow string type when fabricating FRROs"

parents b4a4e68b 05466592
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -234,8 +234,12 @@ Status Idmap2Service::createFabricatedOverlay(
  }

  for (const auto& res : overlay.entries) {
    if (res.dataType == Res_value::TYPE_STRING) {
      builder.SetResourceValue(res.resourceName, res.dataType, res.stringData.value());
    } else {
      builder.SetResourceValue(res.resourceName, res.dataType, res.data);
    }
  }

  // Generate the file path of the fabricated overlay and ensure it does not collide with an
  // existing path. Re-registering a fabricated overlay will always result in an updated path.
+1 −0
Original line number Diff line number Diff line
@@ -23,4 +23,5 @@ parcelable FabricatedOverlayInternalEntry {
    @utf8InCpp String resourceName;
    int dataType;
    int data;
    @nullable @utf8InCpp String stringData;
}
 No newline at end of file
+4 −0
Original line number Diff line number Diff line
@@ -41,6 +41,9 @@ struct FabricatedOverlay {
    Builder& SetResourceValue(const std::string& resource_name, uint8_t data_type,
                              uint32_t data_value);

    Builder& SetResourceValue(const std::string& resource_name, uint8_t data_type,
                              const std::string& data_string_value);

    WARN_UNUSED Result<FabricatedOverlay> Build();

   private:
@@ -48,6 +51,7 @@ struct FabricatedOverlay {
      std::string resource_name;
      DataType data_type;
      DataValue data_value;
      std::string data_string_value;
    };

    std::string package_name_;
+1 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ using DataValue = uint32_t; // Res_value::data
struct TargetValue {
  DataType data_type;
  DataValue data_value;
  std::string data_string_value;
};

namespace utils {
+9 −2
Original line number Diff line number Diff line
@@ -65,7 +65,13 @@ FabricatedOverlay::Builder& FabricatedOverlay::Builder::SetOverlayable(const std

FabricatedOverlay::Builder& FabricatedOverlay::Builder::SetResourceValue(
    const std::string& resource_name, uint8_t data_type, uint32_t data_value) {
  entries_.emplace_back(Entry{resource_name, data_type, data_value});
  entries_.emplace_back(Entry{resource_name, data_type, data_value, ""});
  return *this;
}

FabricatedOverlay::Builder& FabricatedOverlay::Builder::SetResourceValue(
    const std::string& resource_name, uint8_t data_type, const std::string& data_string_value) {
  entries_.emplace_back(Entry{resource_name, data_type, 0, data_string_value});
  return *this;
}

@@ -111,7 +117,8 @@ Result<FabricatedOverlay> FabricatedOverlay::Builder::Build() {
      entry = type->second.insert(std::make_pair(entry_name.to_string(), TargetValue())).first;
    }

    entry->second = TargetValue{res_entry.data_type, res_entry.data_value};
    entry->second = TargetValue{
        res_entry.data_type, res_entry.data_value, res_entry.data_string_value};
  }

  pb::FabricatedOverlay overlay_pb;
Loading