The battery percentage for low battery level is now signaled by the device
Added a field "thresholdEvent" to battery network packages. REVIEW: 113835
This commit is contained in:
parent
7e270bbc80
commit
e77a2af07b
3 changed files with 25 additions and 17 deletions
|
@ -4,6 +4,12 @@ following fields:
|
||||||
|
|
||||||
isCharging (boolean): If the battery of the peer device is charging
|
isCharging (boolean): If the battery of the peer device is charging
|
||||||
currentCharge (int): The charge % of the peer device
|
currentCharge (int): The charge % of the peer device
|
||||||
|
thresholdEvent (int) [optional when = 0, see below]:
|
||||||
|
means that a battery threshold event were fired on the remote device:
|
||||||
|
0 := no event. generally not transmitted.
|
||||||
|
1 := battery entered in low state
|
||||||
|
This is an int so in the future we'll be able to subscribe to more events.
|
||||||
|
(see BatteryPlugin.ThresholdBatteryEvent)
|
||||||
|
|
||||||
<TODO>
|
<TODO>
|
||||||
Symmetrically, it sends its own battery information in packages with the same
|
Symmetrically, it sends its own battery information in packages with the same
|
||||||
|
|
|
@ -60,29 +60,23 @@ bool BatteryPlugin::receivePackage(const NetworkPackage& np)
|
||||||
{
|
{
|
||||||
bool isCharging = np.get<bool>("isCharging");
|
bool isCharging = np.get<bool>("isCharging");
|
||||||
int currentCharge = np.get<int>("currentCharge");
|
int currentCharge = np.get<int>("currentCharge");
|
||||||
|
int thresholdEvent = np.get<int>("thresholdEvent", (int)ThresholdNone);
|
||||||
|
|
||||||
if (batteryDbusInterface->isCharging() != currentCharge
|
if (batteryDbusInterface->isCharging() != currentCharge
|
||||||
|| batteryDbusInterface->isCharging() != isCharging) {
|
|| batteryDbusInterface->isCharging() != isCharging
|
||||||
|
) {
|
||||||
batteryDbusInterface->updateValues(isCharging, currentCharge);
|
batteryDbusInterface->updateValues(isCharging, currentCharge);
|
||||||
|
}
|
||||||
|
|
||||||
//FIXME: Where's that 14 coming from?
|
if ( thresholdEvent == ThresholdBatteryLow && !isCharging ) {
|
||||||
//TODO: Decouple the protocol from Android
|
|
||||||
/*TODO: Look into the following android interfaces
|
|
||||||
android.intent.action.BATTERY_LOW
|
|
||||||
android.intent.action.BATTERY_OKAY
|
|
||||||
*/
|
|
||||||
if (currentCharge == 14 && !isCharging) {
|
|
||||||
KNotification* notification = new KNotification("batteryLow");
|
KNotification* notification = new KNotification("batteryLow");
|
||||||
notification->setPixmap(KIcon("battery-040").pixmap(48, 48));
|
notification->setPixmap(KIcon("battery-040").pixmap(48, 48));
|
||||||
notification->setComponentData(KComponentData("kdeconnect", "kdeconnect"));
|
notification->setComponentData(KComponentData("kdeconnect", "kdeconnect"));
|
||||||
notification->setTitle(i18nc("device name: low battery", "%1: low battery",device()->name()));
|
notification->setTitle(i18nc("device name: low battery", "%1: low battery", device()->name()));
|
||||||
notification->setText(i18n("Battery at 14%"));
|
notification->setText(i18n("Battery at %1%", currentCharge));
|
||||||
notification->sendEvent();
|
notification->sendEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,14 @@ public Q_SLOTS:
|
||||||
virtual void connected();
|
virtual void connected();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Keep these values in sync with THRESHOLD* constants in
|
||||||
|
// kdeconnect-android:BatteryPlugin.java
|
||||||
|
// see README for their meaning
|
||||||
|
enum ThresholdBatteryEvent {
|
||||||
|
ThresholdNone = 0,
|
||||||
|
ThresholdBatteryLow = 1
|
||||||
|
};
|
||||||
|
|
||||||
BatteryDbusInterface* batteryDbusInterface;
|
BatteryDbusInterface* batteryDbusInterface;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue