return;
ret = booting_done(NULL);
- if (ret && ((old_battery.online != battery.online) ||
- (battery.online >= CHARGER_WIRELESS_TYPE_BT && old_battery.charge_status == CHARGE_STATUS_DISCHARGING))) {
- if (battery.online > POWER_SUPPLY_TYPE_BATTERY && battery.charge_now == CHARGER_CHARGING)
+ if (ret) {
+ /* If the same notification is requested repeatedly, it is ignored by power_supply_noti().
+ * A notification will be triggered only when charge_status changes between
+ * CHARGE_STATUS_CHARGING/FULL <-> CHARGE_STATUS_DISCHARGING. */
+ if (battery.charge_status == CHARGE_STATUS_CHARGING || battery.charge_status == CHARGE_STATUS_FULL)
power_supply_noti(DEVICE_NOTI_BATT_CHARGE, DEVICE_NOTI_ON);
- else
+ else if (battery.charge_status == CHARGE_STATUS_DISCHARGING)
power_supply_noti(DEVICE_NOTI_BATT_CHARGE, DEVICE_NOTI_OFF);
}
+
if (ret == 0) {
battery.health = HEALTH_GOOD;
battery.present = PRESENT_NORMAL;