Revert "remove pixelflinger from healthd"

This reverts commit 0280f278f6e2d095e6579deba61fe96bfa649d4f.
diff --git a/charger/Android.mk b/charger/Android.mk
index 40c7d78..b9d3473 100644
--- a/charger/Android.mk
+++ b/charger/Android.mk
@@ -24,7 +24,7 @@
 
 LOCAL_C_INCLUDES := bootable/recovery
 
-LOCAL_STATIC_LIBRARIES := libminui libpng
+LOCAL_STATIC_LIBRARIES := libminui libpixelflinger_static libpng
 ifeq ($(strip $(BOARD_CHARGER_ENABLE_SUSPEND)),true)
 LOCAL_STATIC_LIBRARIES += libsuspend
 endif
diff --git a/charger/charger.c b/charger/charger.c
index 402d0e8..8f9169d 100644
--- a/charger/charger.c
+++ b/charger/charger.c
@@ -91,6 +91,7 @@
 };
 
 struct frame {
+    const char *name;
     int disp_time;
     int min_capacity;
     bool level_only;
@@ -141,27 +142,33 @@
 
 static struct frame batt_anim_frames[] = {
     {
+        .name = "charger/battery_0",
         .disp_time = 750,
         .min_capacity = 0,
     },
     {
+        .name = "charger/battery_1",
         .disp_time = 750,
         .min_capacity = 20,
     },
     {
+        .name = "charger/battery_2",
         .disp_time = 750,
         .min_capacity = 40,
     },
     {
+        .name = "charger/battery_3",
         .disp_time = 750,
         .min_capacity = 60,
     },
     {
+        .name = "charger/battery_4",
         .disp_time = 750,
         .min_capacity = 80,
         .level_only = true,
     },
     {
+        .name = "charger/battery_5",
         .disp_time = 750,
         .min_capacity = BATTERY_FULL_THRESH,
     },
@@ -191,8 +198,8 @@
 static void clear_screen(void)
 {
     gr_color(0, 0, 0, 255);
-    gr_clear();
-}
+    gr_fill(0, 0, gr_fb_width(), gr_fb_height());
+};
 
 #define MAX_KLOG_WRITE_BUF_SZ 256
 
@@ -652,8 +659,8 @@
 
     if (batt_anim->num_frames != 0) {
         draw_surface_centered(charger, frame->surface);
-        LOGV("drawing frame #%d min_cap=%d time=%d\n",
-             batt_anim->cur_frame, frame->min_capacity,
+        LOGV("drawing frame #%d name=%s min_cap=%d time=%d\n",
+             batt_anim->cur_frame, frame->name, frame->min_capacity,
              frame->disp_time);
     }
 }
@@ -975,27 +982,20 @@
 
     ret = res_create_surface("charger/battery_fail", &charger->surf_unknown);
     if (ret < 0) {
-        LOGE("Cannot load battery_fail image\n");
+        LOGE("Cannot load image\n");
         charger->surf_unknown = NULL;
     }
 
-    charger->batt_anim = &battery_animation;
+    for (i = 0; i < charger->batt_anim->num_frames; i++) {
+        struct frame *frame = &charger->batt_anim->frames[i];
 
-    gr_surface* scale_frames;
-    int scale_count;
-    ret = res_create_multi_surface("charger/battery_scale", &scale_count, &scale_frames);
-    if (ret < 0) {
-        LOGE("Cannot load battery_scale image\n");
-        charger->batt_anim->num_frames = 0;
-        charger->batt_anim->num_cycles = 1;
-    } else if (scale_count != charger->batt_anim->num_frames) {
-        LOGE("battery_scale image has unexpected frame count (%d, expected %d)\n",
-             scale_count, charger->batt_anim->num_frames);
-        charger->batt_anim->num_frames = 0;
-        charger->batt_anim->num_cycles = 1;
-    } else {
-        for (i = 0; i < charger->batt_anim->num_frames; i++) {
-            charger->batt_anim->frames[i].surface = scale_frames[i];
+        ret = res_create_surface(frame->name, &frame->surface);
+        if (ret < 0) {
+            LOGE("Cannot load image %s\n", frame->name);
+            /* TODO: free the already allocated surfaces... */
+            charger->batt_anim->num_frames = 0;
+            charger->batt_anim->num_cycles = 1;
+            break;
         }
     }
 
diff --git a/charger/images/battery_0.png b/charger/images/battery_0.png
new file mode 100644
index 0000000..2347074
--- /dev/null
+++ b/charger/images/battery_0.png
Binary files differ
diff --git a/charger/images/battery_1.png b/charger/images/battery_1.png
new file mode 100644
index 0000000..cd34620
--- /dev/null
+++ b/charger/images/battery_1.png
Binary files differ
diff --git a/charger/images/battery_2.png b/charger/images/battery_2.png
new file mode 100644
index 0000000..3e4095e
--- /dev/null
+++ b/charger/images/battery_2.png
Binary files differ
diff --git a/charger/images/battery_3.png b/charger/images/battery_3.png
new file mode 100644
index 0000000..08c1551
--- /dev/null
+++ b/charger/images/battery_3.png
Binary files differ
diff --git a/charger/images/battery_4.png b/charger/images/battery_4.png
new file mode 100644
index 0000000..3a678da
--- /dev/null
+++ b/charger/images/battery_4.png
Binary files differ
diff --git a/charger/images/battery_5.png b/charger/images/battery_5.png
new file mode 100644
index 0000000..d8dc40e
--- /dev/null
+++ b/charger/images/battery_5.png
Binary files differ
diff --git a/charger/images/battery_charge.png b/charger/images/battery_charge.png
new file mode 100644
index 0000000..b501933
--- /dev/null
+++ b/charger/images/battery_charge.png
Binary files differ
diff --git a/charger/images/battery_fail.png b/charger/images/battery_fail.png
index aded88a..36fc254 100644
--- a/charger/images/battery_fail.png
+++ b/charger/images/battery_fail.png
Binary files differ
diff --git a/charger/images/battery_scale.png b/charger/images/battery_scale.png
deleted file mode 100644
index 2ae8f0f..0000000
--- a/charger/images/battery_scale.png
+++ /dev/null
Binary files differ