mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Huawei: Use single query for P2P timestamp
This commit is contained in:
+11
-18
@@ -2195,30 +2195,23 @@ public class HuaweiSupportProvider {
|
||||
Long userId = DBHelper.getUser(db.getDaoSession()).getId();
|
||||
Long deviceId = DBHelper.getDevice(gbDevice, db.getDaoSession()).getId();
|
||||
|
||||
List<HuaweiDictData> results;
|
||||
|
||||
QueryBuilder<HuaweiDictData> qbModify = db.getDaoSession().getHuaweiDictDataDao().queryBuilder().where(
|
||||
QueryBuilder<HuaweiDictData> qb = db.getDaoSession().getHuaweiDictDataDao().queryBuilder().where(
|
||||
HuaweiDictDataDao.Properties.UserId.eq(userId),
|
||||
HuaweiDictDataDao.Properties.DeviceId.eq(deviceId),
|
||||
HuaweiDictDataDao.Properties.DictClass.eq(dictClass)
|
||||
).orderDesc(
|
||||
HuaweiDictDataDao.Properties.ModifyTimestamp
|
||||
).orderRaw(
|
||||
// "max(MODIFY_TIMESTAMP, END_TIMESTAMP) DESC"
|
||||
String.format(
|
||||
"max(%s, %s) DESC",
|
||||
HuaweiDictDataDao.Properties.ModifyTimestamp.columnName,
|
||||
HuaweiDictDataDao.Properties.EndTimestamp.columnName
|
||||
)
|
||||
).limit(1);
|
||||
results = qbModify.build().list();
|
||||
if (!results.isEmpty())
|
||||
List<HuaweiDictData> results = qb.build().list();
|
||||
if (!results.isEmpty()) {
|
||||
lastTimestamp = Math.max(lastTimestamp, results.get(0).getModifyTimestamp());
|
||||
|
||||
QueryBuilder<HuaweiDictData> qbEndTimestamp = db.getDaoSession().getHuaweiDictDataDao().queryBuilder().where(
|
||||
HuaweiDictDataDao.Properties.UserId.eq(userId),
|
||||
HuaweiDictDataDao.Properties.DeviceId.eq(deviceId),
|
||||
HuaweiDictDataDao.Properties.DictClass.eq(dictClass)
|
||||
).orderDesc(
|
||||
HuaweiDictDataDao.Properties.EndTimestamp
|
||||
).limit(1);
|
||||
results = qbEndTimestamp.build().list();
|
||||
if (!results.isEmpty())
|
||||
lastTimestamp = Math.max(lastTimestamp, results.get(0).getEndTimestamp());
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.error("Failed to select last timestamp value to database", e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user