mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-06-09 22:57:54 +02:00
4cadb0412b
added sync "steps" from PineTime/InfiniTime to Gadgetbridge. notes: * Steps sync works only since InfiniTime 1.7 * InfiniTime advertise "steps" info when the PineTime screen is ON (and a bit after that). hence: * you should unlock the PineTime screen before end of the day to not loose your latest progress (since the last unlock) at the end of the day; * when the PineTime screen is ON and you are moving, PineTime will send "steps" count every about 2-10 seconds, and Gadgetbridge may start to treat this data as an Activity (and also displaying it in Activity charts). that data and charts will not be accurate: you should wait for ["Health/Fitness data storage and expose to companion app](https://github.com/InfiniTimeOrg/InfiniTime/projects/4)" project to be implemented on the PineTime side. and meanwhile, in Gadgetbridge open "Device specific settings" and change/uncheck option in "Charts tabs" and "Activity info on device card" to leave only Steps data. Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2486 Co-authored-by: ITCactus <itcactus@noreply.codeberg.org> Co-committed-by: ITCactus <itcactus@noreply.codeberg.org>
72 lines
2.1 KiB
Java
72 lines
2.1 KiB
Java
package nodomain.freeyourgadget.gadgetbridge.devices.pinetime;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import de.greenrobot.dao.AbstractDao;
|
|
import de.greenrobot.dao.Property;
|
|
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractSampleProvider;
|
|
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
|
|
import nodomain.freeyourgadget.gadgetbridge.entities.PineTimeActivitySample;
|
|
import nodomain.freeyourgadget.gadgetbridge.entities.PineTimeActivitySampleDao;
|
|
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
|
|
|
public class PineTimeActivitySampleProvider extends AbstractSampleProvider<PineTimeActivitySample> {
|
|
private GBDevice mDevice;
|
|
private DaoSession mSession;
|
|
|
|
public PineTimeActivitySampleProvider(GBDevice device, DaoSession session) {
|
|
super(device, session);
|
|
|
|
mSession = session;
|
|
mDevice = device;
|
|
}
|
|
|
|
@Override
|
|
public AbstractDao<PineTimeActivitySample, ?> getSampleDao() {
|
|
return getSession().getPineTimeActivitySampleDao();
|
|
}
|
|
|
|
@Nullable
|
|
@Override
|
|
protected Property getRawKindSampleProperty() {
|
|
return PineTimeActivitySampleDao.Properties.RawKind;
|
|
}
|
|
|
|
@NonNull
|
|
@Override
|
|
protected Property getTimestampSampleProperty() {
|
|
return PineTimeActivitySampleDao.Properties.Timestamp;
|
|
}
|
|
|
|
@NonNull
|
|
@Override
|
|
protected Property getDeviceIdentifierSampleProperty() {
|
|
return PineTimeActivitySampleDao.Properties.DeviceId;
|
|
}
|
|
|
|
@Override
|
|
public int normalizeType(int rawType) {
|
|
return rawType;
|
|
}
|
|
|
|
@Override
|
|
public int toRawActivityKind(int activityKind) {
|
|
return activityKind;
|
|
}
|
|
|
|
@Override
|
|
public float normalizeIntensity(int rawIntensity) {
|
|
return rawIntensity;
|
|
}
|
|
|
|
/**
|
|
* Factory method to creates an empty sample of the correct type for this sample provider
|
|
*
|
|
* @return the newly created "empty" sample
|
|
*/
|
|
@Override
|
|
public PineTimeActivitySample createActivitySample() {
|
|
return new PineTimeActivitySample();
|
|
}
|
|
}
|