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

Commit c85de61a authored by Yifan Hong's avatar Yifan Hong Committed by android-build-merger
Browse files

Merge "healthd: charger loads resources from /product"

am: 94740636

Change-Id: Ie720b289fa5ec9f3fdd11fdf02b9d12d71e3ba89
parents 319f0225 94740636
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -48,6 +48,25 @@ struct animation {
        GRFont* font;
    };

    // When libminui loads PNG images:
    // - When treating paths as relative paths, it adds ".png" suffix.
    // - When treating paths as absolute paths, it doesn't add the suffix. Hence, the suffix
    //   is added here.
    void set_resource_root(const std::string& root) {
        if (!animation_file.empty()) {
            animation_file = root + animation_file + ".png";
        }
        if (!fail_file.empty()) {
            fail_file = root + fail_file + ".png";
        }
        if (!text_clock.font_file.empty()) {
            text_clock.font_file = root + text_clock.font_file + ".png";
        }
        if (!text_percent.font_file.empty()) {
            text_percent.font_file = root + text_percent.font_file + ".png";
        }
    }

    std::string animation_file;
    std::string fail_file;

+11 −3
Original line number Diff line number Diff line
@@ -80,8 +80,13 @@ char* locale;
#define LOGW(x...) KLOG_WARNING("charger", x);
#define LOGV(x...) KLOG_DEBUG("charger", x);

static constexpr const char* animation_desc_path =
    "/res/values/charger/animation.txt";
// Resources in /product/etc/res overrides resources in /res.
// If the device is using the Generic System Image (GSI), resources may exist in
// both paths.
static constexpr const char* product_animation_desc_path =
        "/product/etc/res/values/charger/animation.txt";
static constexpr const char* product_animation_root = "/product/etc/res/images/";
static constexpr const char* animation_desc_path = "/res/values/charger/animation.txt";

struct key_state {
    bool pending;
@@ -600,7 +605,10 @@ animation* init_animation() {
    bool parse_success;

    std::string content;
    if (base::ReadFileToString(animation_desc_path, &content)) {
    if (base::ReadFileToString(product_animation_desc_path, &content)) {
        parse_success = parse_animation_desc(content, &battery_animation);
        battery_animation.set_resource_root(product_animation_root);
    } else if (base::ReadFileToString(animation_desc_path, &content)) {
        parse_success = parse_animation_desc(content, &battery_animation);
    } else {
        LOGW("Could not open animation description at %s\n", animation_desc_path);