merge in ics-release history after reset to master
diff --git a/charger/charger.c b/charger/charger.c
index a6f8509..0ade250 100644
--- a/charger/charger.c
+++ b/charger/charger.c
@@ -58,6 +58,8 @@
 #define POWER_ON_KEY_TIME       (2 * MSEC_PER_SEC)
 #define UNPLUGGED_SHUTDOWN_TIME (10 * MSEC_PER_SEC)
 
+#define BATTERY_FULL_THRESH     95
+
 #define LOGE(x...) do { KLOG_ERROR("charger", x); } while (0)
 #define LOGI(x...) do { KLOG_INFO("charger", x); } while (0)
 #define LOGV(x...) do { KLOG_DEBUG("charger", x); } while (0)
@@ -152,6 +154,11 @@
         .disp_time = 750,
         .min_capacity = 80,
     },
+    {
+        .name = "charger/battery_5",
+        .disp_time = 750,
+        .min_capacity = BATTERY_FULL_THRESH,
+    },
 };
 
 static struct animation battery_animation = {
@@ -231,6 +238,22 @@
     return -1;
 }
 
+static int get_battery_capacity(struct charger *charger)
+{
+    int ret;
+    int batt_cap = -1;
+
+    if (!charger->battery)
+        return -1;
+
+    ret = read_file_int(charger->battery->cap_path, &batt_cap);
+    if (ret < 0 || batt_cap > 100) {
+        batt_cap = -1;
+    }
+
+    return batt_cap;
+}
+
 static struct power_supply *find_supply(struct charger *charger,
                                         const char *name)
 {
@@ -619,10 +642,8 @@
         int ret;
 
         LOGV("[%lld] animation starting\n", now);
-        ret = read_file_int(charger->battery->cap_path, &batt_cap);
-        if (ret < 0 || batt_cap > 100) {
-            batt_cap = -1;
-        } else if (batt_anim->num_frames != 0) {
+        batt_cap = get_battery_capacity(charger);
+        if (batt_cap >= 0 && batt_anim->num_frames != 0) {
             int i;
 
             /* find first frame given current capacity */
@@ -749,6 +770,7 @@
     if (charger->num_supplies_online == 0) {
         if (charger->next_pwr_check == -1) {
             charger->next_pwr_check = now + UNPLUGGED_SHUTDOWN_TIME;
+            kick_animation(charger->batt_anim);
             LOGI("[%lld] device unplugged: shutting down in %lld (@ %lld)\n",
                  now, UNPLUGGED_SHUTDOWN_TIME, charger->next_pwr_check);
         } else if (now >= charger->next_pwr_check) {
diff --git a/charger/images/battery_0.png b/charger/images/battery_0.png
index 8128acd..2347074 100644
--- a/charger/images/battery_0.png
+++ b/charger/images/battery_0.png
Binary files differ
diff --git a/charger/images/battery_1.png b/charger/images/battery_1.png
index d909815..cd34620 100644
--- a/charger/images/battery_1.png
+++ b/charger/images/battery_1.png
Binary files differ
diff --git a/charger/images/battery_2.png b/charger/images/battery_2.png
index c710ca9..3e4095e 100644
--- a/charger/images/battery_2.png
+++ b/charger/images/battery_2.png
Binary files differ
diff --git a/charger/images/battery_3.png b/charger/images/battery_3.png
index f7a926b..08c1551 100644
--- a/charger/images/battery_3.png
+++ b/charger/images/battery_3.png
Binary files differ
diff --git a/charger/images/battery_4.png b/charger/images/battery_4.png
index 51c4d24..3a678da 100644
--- a/charger/images/battery_4.png
+++ 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
index f7678fa..b501933 100644
--- a/charger/images/battery_charge.png
+++ b/charger/images/battery_charge.png
Binary files differ
diff --git a/charger/images/battery_fail.png b/charger/images/battery_fail.png
index 25c7e97..36fc254 100644
--- a/charger/images/battery_fail.png
+++ b/charger/images/battery_fail.png
Binary files differ