void BatteryNotifier::applyBatteryStatus(int, QBatteryInfo::BatteryStatus status) { switch(status) { case QBatteryInfo::BatteryFull: stopLowBatteryNotifier(); removeNotification(QStringList() << "x-nemo.battery"); sendNotification(NotificationChargingComplete); break; case QBatteryInfo::BatteryOk: stopLowBatteryNotifier(); break; case QBatteryInfo::BatteryLow: if (batteryInfo->chargingState(0) != QBatteryInfo::Charging) { // The low battery notifications should be sent only if the battery is not charging startLowBatteryNotifier(); } break; case QBatteryInfo::BatteryEmpty: sendNotification(NotificationRechargeBattery); break; default: break; } }
void BatteryNotifier::applyChargerType(QBatteryInfo::ChargerType type) { switch(type) { case QBatteryInfo::UnknownCharger: /* * After the user plugs out the charger from the device, this system * banner is displayed to remind the users to unplug charger from * the power supply for conserving energy. Remove charger * notification should not be shown in case if USB cable is used for * charging the device. */ if (chargerType == QBatteryInfo::WallCharger) { removeNotification(QStringList() << "x-nemo.battery" << "x-nemo.battery.chargingcomplete"); sendNotification(NotificationRemoveCharger); } if (chargerType != QBatteryInfo::UnknownCharger && chargerType != QBatteryInfo::USBCharger && batteryInfo->batteryStatus(0) == QBatteryInfo::BatteryLow && batteryInfo->chargingState(0) != QBatteryInfo::Charging) { // A charger was connected but is no longer connected and the battery is low, so start low battery notifier startLowBatteryNotifier(); } break; default: break; } chargerType = type; }
void BatteryNotifier::batteryStateChanged(MeeGo::QmBattery::BatteryState state) { switch(state) { case MeeGo::QmBattery::StateFull: stopLowBatteryNotifier(); removeNotification(QStringList() << "x-nemo.battery"); sendNotification(NotificationChargingComplete); break; case MeeGo::QmBattery::StateOK: stopLowBatteryNotifier(); break; case MeeGo::QmBattery::StateLow: if (qmBattery->getChargingState() != MeeGo::QmBattery::StateCharging) { // The low battery notifications should be sent only if the battery is not charging startLowBatteryNotifier(); } break; case MeeGo::QmBattery::StateEmpty: sendNotification(NotificationRechargeBattery); break; case MeeGo::QmBattery::StateError: break; } }
void BatteryNotifier::batteryChargerEvent(MeeGo::QmBattery::ChargerType type) { switch(type) { case MeeGo::QmBattery::None: /* * After the user plugs out the charger from the device, this system * banner is displayed to remind the users to unplug charger from * the power supply for conserving energy. Remove charger * notification should not be shown in case if USB cable is used for * charging the device. */ if (chargerType == MeeGo::QmBattery::Wall) { removeNotification(QStringList() << "x-nemo.battery" << "x-nemo.battery.chargingcomplete"); sendNotification(NotificationRemoveCharger); } if (chargerType != MeeGo::QmBattery::None && chargerType != MeeGo::QmBattery::USB_100mA && qmBattery->getBatteryState() == MeeGo::QmBattery::StateLow && qmBattery->getChargingState() != MeeGo::QmBattery::StateCharging) { // A charger was connected but is no longer connected and the battery is low, so start low battery notifier startLowBatteryNotifier(); } break; case MeeGo::QmBattery::Wall: // Wall charger break; case MeeGo::QmBattery::USB_500mA: // USB with 500mA output break; case MeeGo::QmBattery::USB_100mA: // USB with 100mA output break; default: break; } chargerType = type; }
void BatteryNotifier::applyChargerType(QBatteryInfo::ChargerType type) { switch(type) { case QBatteryInfo::UnknownCharger: /* * After the user plugs out the charger from the device, this system * banner is displayed to remind the users to unplug charger from * the power supply for conserving energy. Remove charger * notification should not be shown in case if USB cable is used for * charging the device. */ if (chargerType == QBatteryInfo::WallCharger) { removeNotification(QStringList() << "x-nemo.battery" << "x-nemo.battery.chargingcomplete"); sendNotification(NotificationRemoveCharger); } #if QT_VERSION < QT_VERSION_CHECK(5, 2, 0) if (chargerType != QBatteryInfo::UnknownCharger && chargerType != QBatteryInfo::USBCharger && batteryInfo->batteryStatus(0) == QBatteryInfo::BatteryLow && batteryInfo->chargingState(0) != QBatteryInfo::Charging) { #else if (chargerType != QBatteryInfo::UnknownCharger && chargerType != QBatteryInfo::USBCharger && batteryInfo->levelStatus() == QBatteryInfo::LevelLow && batteryInfo->chargingState() != QBatteryInfo::Charging) { #endif // A charger was connected but is no longer connected and the battery is low, so start low battery notifier startLowBatteryNotifier(); } break; default: break; } chargerType = type; } void BatteryNotifier::applyPSMState(MeeGo::QmDeviceMode::PSMState psmState) { if (psmState == MeeGo::QmDeviceMode::PSMStateOff) { sendNotification(NotificationExitingPSM); } else if (psmState == MeeGo::QmDeviceMode::PSMStateOn) { sendNotification(NotificationEnteringPSM); } } void BatteryNotifier::sendNotification(BatteryNotifier::NotificationID id) { switch(id) { case NotificationCharging: sendNotification("x-nemo.battery", //% "Charging" qtTrId("qtn_ener_charging")); break; case NotificationChargingComplete: sendNotification("x-nemo.battery.chargingcomplete", //% "Charging complete" qtTrId("qtn_ener_charcomp")); break; case NotificationRemoveCharger: sendNotification("x-nemo.battery.removecharger", //% "Disconnect charger from power supply to save energy" qtTrId("qtn_ener_remcha")); break; case NotificationChargingNotStarted: sendNotification("x-nemo.battery.chargingnotstarted", //% "Charging not started. Replace charger." qtTrId("qtn_ener_repcharger")); break; case NotificationRechargeBattery: sendNotification("x-nemo.battery.recharge", //% "Recharge battery" qtTrId("qtn_ener_rebatt")); break; case NotificationEnteringPSM: sendNotification("x-nemo.battery.enterpsm", //% "Entering power save mode" qtTrId("qtn_ener_ent_psnote")); break; case NotificationExitingPSM: sendNotification("x-nemo.battery.exitpsm", //% "Exiting power save mode" qtTrId("qtn_ener_exit_psnote")); break; case NotificationLowBattery: sendNotification("x-nemo.battery.lowbattery", //% "Low battery" qtTrId("qtn_ener_lowbatt")); break; case NotificationNoEnoughPower: sendNotification("x-nemo.battery.notenoughpower", //% "Not enough power to charge" qtTrId("qtn_ener_nopowcharge"), "icon-m-energy-management-insufficient-power"); break; } } void BatteryNotifier::sendNotification(const QString &category, const QString &text, const QString &icon) { NotificationManager *manager = NotificationManager::instance(); QVariantHash hints; hints.insert(NotificationManager::HINT_CATEGORY, category); hints.insert(NotificationManager::HINT_PREVIEW_BODY, text); notificationId = manager->Notify(qApp->applicationName(), 0, icon, QString(), QString(), QStringList(), hints, -1); notificationCategory = category; notificationTimer.start(); }