mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-09-01 12:05:37 +02:00
Use Gb DBaccess for Battery level storing
This commit is contained in:
parent
6aeb297aa5
commit
69d9695eac
@ -44,7 +44,6 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -53,6 +52,7 @@ import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
|||||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.FindPhoneActivity;
|
import nodomain.freeyourgadget.gadgetbridge.activities.FindPhoneActivity;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.appmanager.AbstractAppManagerFragment;
|
import nodomain.freeyourgadget.gadgetbridge.activities.appmanager.AbstractAppManagerFragment;
|
||||||
|
import nodomain.freeyourgadget.gadgetbridge.database.DBAccess;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
|
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
|
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
|
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
|
||||||
@ -70,15 +70,12 @@ import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventVersionInf
|
|||||||
import nodomain.freeyourgadget.gadgetbridge.entities.BatteryLevel;
|
import nodomain.freeyourgadget.gadgetbridge.entities.BatteryLevel;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
|
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.entities.Device;
|
import nodomain.freeyourgadget.gadgetbridge.entities.Device;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.entities.User;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.externalevents.NotificationListener;
|
import nodomain.freeyourgadget.gadgetbridge.externalevents.NotificationListener;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.BatteryState;
|
import nodomain.freeyourgadget.gadgetbridge.model.BatteryState;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.service.receivers.GBCallControlReceiver;
|
import nodomain.freeyourgadget.gadgetbridge.service.receivers.GBCallControlReceiver;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.service.receivers.GBMusicControlReceiver;
|
import nodomain.freeyourgadget.gadgetbridge.service.receivers.GBMusicControlReceiver;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.AlarmUtils;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
|
||||||
|
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.util.GB.NOTIFICATION_CHANNEL_HIGH_PRIORITY_ID;
|
import static nodomain.freeyourgadget.gadgetbridge.util.GB.NOTIFICATION_CHANNEL_HIGH_PRIORITY_ID;
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.util.GB.NOTIFICATION_CHANNEL_ID;
|
import static nodomain.freeyourgadget.gadgetbridge.util.GB.NOTIFICATION_CHANNEL_ID;
|
||||||
@ -420,19 +417,7 @@ public abstract class AbstractDeviceSupport implements DeviceSupport {
|
|||||||
GB.removeBatteryNotification(context);
|
GB.removeBatteryNotification(context);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
try (DBHandler db = GBApplication.acquireDB()) {
|
createStoreTask("Storing battery data", context, deviceEvent).execute();
|
||||||
DaoSession daoSession = db.getDaoSession();
|
|
||||||
Device device = DBHelper.getDevice(gbDevice, daoSession);
|
|
||||||
int ts = (int) (System.currentTimeMillis() / 1000);
|
|
||||||
BatteryLevel batteryLevel = new BatteryLevel();
|
|
||||||
batteryLevel.setTimestamp(ts);
|
|
||||||
batteryLevel.setDevice(device);
|
|
||||||
batteryLevel.setLevel(deviceEvent.level);
|
|
||||||
db.getDaoSession().getBatteryLevelDao().insert(batteryLevel);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.debug("Error accessing database: ", GB.ERROR, e);
|
|
||||||
}
|
|
||||||
|
|
||||||
//show the notification if the battery level is below threshold and only if not connected to charger
|
//show the notification if the battery level is below threshold and only if not connected to charger
|
||||||
if (deviceEvent.level <= gbDevice.getBatteryThresholdPercent() &&
|
if (deviceEvent.level <= gbDevice.getBatteryThresholdPercent() &&
|
||||||
@ -454,6 +439,32 @@ public abstract class AbstractDeviceSupport implements DeviceSupport {
|
|||||||
gbDevice.sendDeviceUpdateIntent(context);
|
gbDevice.sendDeviceUpdateIntent(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private StoreDataTask createStoreTask(String task, Context context, GBDeviceEventBatteryInfo deviceEvent) {
|
||||||
|
return new StoreDataTask(task, context, deviceEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StoreDataTask extends DBAccess {
|
||||||
|
GBDeviceEventBatteryInfo deviceEvent;
|
||||||
|
|
||||||
|
public StoreDataTask(String task, Context context, GBDeviceEventBatteryInfo deviceEvent) {
|
||||||
|
super(task, context);
|
||||||
|
this.deviceEvent = deviceEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doInBackground(DBHandler handler) {
|
||||||
|
DaoSession daoSession = handler.getDaoSession();
|
||||||
|
Device device = DBHelper.getDevice(gbDevice, daoSession);
|
||||||
|
int ts = (int) (System.currentTimeMillis() / 1000);
|
||||||
|
BatteryLevel batteryLevel = new BatteryLevel();
|
||||||
|
batteryLevel.setTimestamp(ts);
|
||||||
|
batteryLevel.setDevice(device);
|
||||||
|
batteryLevel.setLevel(deviceEvent.level);
|
||||||
|
handler.getDaoSession().getBatteryLevelDao().insert(batteryLevel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void handleGBDeviceEvent(GBDeviceEventDisplayMessage message) {
|
public void handleGBDeviceEvent(GBDeviceEventDisplayMessage message) {
|
||||||
GB.log(message.message, message.severity, null);
|
GB.log(message.message, message.severity, null);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user