Search in sources :

Example 11 with User

use of nodomain.freeyourgadget.gadgetbridge.entities.User in project Gadgetbridge by Freeyourgadget.

the class HuamiActivityDetailsParserTest method createSummary.

private BipActivitySummary createSummary() {
    BipActivitySummary summary = new BipActivitySummary();
    summary.setBaseLongitude(1);
    summary.setBaseLatitude(1);
    summary.setBaseAltitude(1);
    summary.setStartTime(baseTime);
    User dummyUser = new User(0L);
    dummyUser.setName("Elvis");
    summary.setName("testtrack");
    summary.setUser(dummyUser);
    Device device = new Device(0l);
    device.setName("SuperBand 2000");
    summary.setDevice(device);
    return summary;
}
Also used : User(nodomain.freeyourgadget.gadgetbridge.entities.User) Device(nodomain.freeyourgadget.gadgetbridge.entities.Device) BipActivitySummary(nodomain.freeyourgadget.gadgetbridge.devices.amazfitbip.BipActivitySummary)

Example 12 with User

use of nodomain.freeyourgadget.gadgetbridge.entities.User in project Gadgetbridge by Freeyourgadget.

the class PineTimeJFSupport method addGBActivitySamples.

private void addGBActivitySamples(PineTimeActivitySample[] samples) {
    try (DBHandler dbHandler = GBApplication.acquireDB()) {
        User user = DBHelper.getUser(dbHandler.getDaoSession());
        Device device = DBHelper.getDevice(this.getDevice(), dbHandler.getDaoSession());
        PineTimeActivitySampleProvider provider = new PineTimeActivitySampleProvider(this.getDevice(), dbHandler.getDaoSession());
        for (PineTimeActivitySample sample : samples) {
            sample.setDevice(device);
            sample.setUser(user);
            sample.setProvider(provider);
            sample.setRawIntensity(ActivitySample.NOT_MEASURED);
            provider.addGBActivitySample(sample);
        }
    } catch (Exception ex) {
        GB.toast(getContext(), "Error saving samples: " + ex.getLocalizedMessage(), Toast.LENGTH_LONG, GB.ERROR);
        GB.updateTransferNotification(null, "Data transfer failed", false, 0, getContext());
        LOG.error(ex.getMessage());
    }
}
Also used : DBHandler(nodomain.freeyourgadget.gadgetbridge.database.DBHandler) PineTimeActivitySampleProvider(nodomain.freeyourgadget.gadgetbridge.devices.pinetime.PineTimeActivitySampleProvider) User(nodomain.freeyourgadget.gadgetbridge.entities.User) Device(nodomain.freeyourgadget.gadgetbridge.entities.Device) GBDevice(nodomain.freeyourgadget.gadgetbridge.impl.GBDevice) PineTimeActivitySample(nodomain.freeyourgadget.gadgetbridge.entities.PineTimeActivitySample)

Example 13 with User

use of nodomain.freeyourgadget.gadgetbridge.entities.User in project Gadgetbridge by Freeyourgadget.

the class DBHelper method getAlarms.

/**
 * Returns all user-configurable alarms for the given user and device. The list is sorted by
 * {@link Alarm#position}. Calendar events that may also be modeled as alarms are not stored
 * in the database and hence not returned by this method.
 * @param gbDevice the device for which the alarms shall be loaded
 * @return the list of alarms for the given device
 */
@NonNull
public static List<Alarm> getAlarms(@NonNull GBDevice gbDevice) {
    DeviceCoordinator coordinator = DeviceHelper.getInstance().getCoordinator(gbDevice);
    Prefs prefs = new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()));
    int reservedSlots = prefs.getInt(DeviceSettingsPreferenceConst.PREF_RESERVER_ALARMS_CALENDAR, 0);
    int alarmSlots = coordinator.getAlarmSlotCount();
    try (DBHandler db = GBApplication.acquireDB()) {
        DaoSession daoSession = db.getDaoSession();
        User user = getUser(daoSession);
        Device dbDevice = DBHelper.findDevice(gbDevice, daoSession);
        if (dbDevice != null) {
            AlarmDao alarmDao = daoSession.getAlarmDao();
            Long deviceId = dbDevice.getId();
            QueryBuilder<Alarm> qb = alarmDao.queryBuilder();
            qb.where(AlarmDao.Properties.UserId.eq(user.getId()), AlarmDao.Properties.DeviceId.eq(deviceId)).orderAsc(AlarmDao.Properties.Position).limit(alarmSlots - reservedSlots);
            return qb.build().list();
        }
    } catch (Exception e) {
        LOG.warn("Error reading alarms from db", e);
    }
    return Collections.emptyList();
}
Also used : User(nodomain.freeyourgadget.gadgetbridge.entities.User) ActivityUser(nodomain.freeyourgadget.gadgetbridge.model.ActivityUser) Device(nodomain.freeyourgadget.gadgetbridge.entities.Device) GBDevice(nodomain.freeyourgadget.gadgetbridge.impl.GBDevice) Alarm(nodomain.freeyourgadget.gadgetbridge.entities.Alarm) Prefs(nodomain.freeyourgadget.gadgetbridge.util.Prefs) AlarmDao(nodomain.freeyourgadget.gadgetbridge.entities.AlarmDao) DeviceCoordinator(nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator) IOException(java.io.IOException) DaoSession(nodomain.freeyourgadget.gadgetbridge.entities.DaoSession) NonNull(androidx.annotation.NonNull)

Example 14 with User

use of nodomain.freeyourgadget.gadgetbridge.entities.User in project Gadgetbridge by Freeyourgadget.

the class DBHelper method getUser.

/**
 * Looks up the user entity in the database. If a user exists already, it will
 * be updated with the current preferences values. If no user exists yet, it will
 * be created in the database.
 *
 * Note: so far there is only ever a single user; there is no multi-user support yet
 * @param session
 * @return the User entity
 */
@NonNull
public static User getUser(DaoSession session) {
    ActivityUser prefsUser = new ActivityUser();
    UserDao userDao = session.getUserDao();
    User user;
    List<User> users = userDao.loadAll();
    if (users.isEmpty()) {
        user = createUser(prefsUser, session);
    } else {
        // TODO: multiple users support?
        user = users.get(0);
        ensureUserUpToDate(user, prefsUser, session);
    }
    ensureUserAttributes(user, prefsUser, session);
    return user;
}
Also used : User(nodomain.freeyourgadget.gadgetbridge.entities.User) ActivityUser(nodomain.freeyourgadget.gadgetbridge.model.ActivityUser) UserDao(nodomain.freeyourgadget.gadgetbridge.entities.UserDao) ActivityUser(nodomain.freeyourgadget.gadgetbridge.model.ActivityUser) NonNull(androidx.annotation.NonNull)

Example 15 with User

use of nodomain.freeyourgadget.gadgetbridge.entities.User in project Gadgetbridge by Freeyourgadget.

the class DBHelper method createUser.

@NonNull
private static User createUser(ActivityUser prefsUser, DaoSession session) {
    User user = new User();
    ensureUserUpToDate(user, prefsUser, session);
    return user;
}
Also used : User(nodomain.freeyourgadget.gadgetbridge.entities.User) ActivityUser(nodomain.freeyourgadget.gadgetbridge.model.ActivityUser) NonNull(androidx.annotation.NonNull)

Aggregations

User (nodomain.freeyourgadget.gadgetbridge.entities.User)23 Device (nodomain.freeyourgadget.gadgetbridge.entities.Device)19 DBHandler (nodomain.freeyourgadget.gadgetbridge.database.DBHandler)14 GBDevice (nodomain.freeyourgadget.gadgetbridge.impl.GBDevice)12 IOException (java.io.IOException)11 DaoSession (nodomain.freeyourgadget.gadgetbridge.entities.DaoSession)9 ActivityUser (nodomain.freeyourgadget.gadgetbridge.model.ActivityUser)9 NonNull (androidx.annotation.NonNull)5 GregorianCalendar (java.util.GregorianCalendar)4 DeviceCoordinator (nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator)4 MiBandSampleProvider (nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandSampleProvider)4 MiBandActivitySample (nodomain.freeyourgadget.gadgetbridge.entities.MiBandActivitySample)4 Alarm (nodomain.freeyourgadget.gadgetbridge.entities.Alarm)3 Prefs (nodomain.freeyourgadget.gadgetbridge.util.Prefs)3 Test (org.junit.Test)3 Calendar (java.util.Calendar)2 GBException (nodomain.freeyourgadget.gadgetbridge.GBException)2 CasioGBX100SampleProvider (nodomain.freeyourgadget.gadgetbridge.devices.casio.CasioGBX100SampleProvider)2 CasioGBX100ActivitySample (nodomain.freeyourgadget.gadgetbridge.entities.CasioGBX100ActivitySample)2 Reminder (nodomain.freeyourgadget.gadgetbridge.entities.Reminder)2