Search in sources :

Example 1 with BandAlarm

use of nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.entities.alarm.BandAlarm in project Gadgetbridge by Freeyourgadget.

the class BandAlarms method toByteArray.

public byte[] toByteArray() {
    ByteArrayWriter byteArrayWriter = new ByteArrayWriter();
    if (this.alarms.size() == 0) {
        byteArrayWriter.appendUint32(1073741824L);
    } else {
        for (BandAlarm bandAlarm : this.alarms) {
            UIntBitWriter uIntBitWriter = new UIntBitWriter(32);
            uIntBitWriter.append(2, 0);
            uIntBitWriter.append(4, bandAlarm.index);
            uIntBitWriter.append(2, bandAlarm.state.value);
            uIntBitWriter.append(4, bandAlarm.interval);
            uIntBitWriter.append(6, bandAlarm.hour);
            uIntBitWriter.append(6, bandAlarm.minute);
            uIntBitWriter.append(1, 0);
            uIntBitWriter.append(7, bandAlarm.repeat.toInt());
            byteArrayWriter.appendUint32(uIntBitWriter.getValue());
        }
    }
    return byteArrayWriter.getByteArray();
}
Also used : UIntBitWriter(nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.util.UIntBitWriter) ByteArrayWriter(nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.util.ByteArrayWriter)

Example 2 with BandAlarm

use of nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.entities.alarm.BandAlarm in project Gadgetbridge by Freeyourgadget.

the class SonySWR12DeviceSupport method onSetAlarms.

@Override
public void onSetAlarms(ArrayList<? extends Alarm> alarms) {
    try {
        BluetoothGattCharacteristic alarmCharacteristic = getCharacteristic(SonySWR12Constants.UUID_CHARACTERISTIC_ALARM);
        TransactionBuilder builder = performInitialized("alarm");
        int prefInterval = Integer.valueOf(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getString(DeviceSettingsPreferenceConst.PREF_SONYSWR12_SMART_INTERVAL, "0"));
        ArrayList<BandAlarm> bandAlarmList = new ArrayList<>();
        for (Alarm alarm : alarms) {
            BandAlarm bandAlarm = BandAlarm.fromAppAlarm(alarm, bandAlarmList.size(), alarm.getSmartWakeup() ? prefInterval : 0);
            if (bandAlarm != null)
                bandAlarmList.add(bandAlarm);
        }
        builder.write(alarmCharacteristic, new BandAlarms(bandAlarmList).toByteArray());
        builder.queue(getQueue());
    } catch (Exception e) {
        GB.toast(getContext(), "Error setting alarms: " + e.getLocalizedMessage(), Toast.LENGTH_LONG, GB.ERROR);
    }
}
Also used : BandAlarm(nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.entities.alarm.BandAlarm) BandAlarm(nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.entities.alarm.BandAlarm) Alarm(nodomain.freeyourgadget.gadgetbridge.model.Alarm) ArrayList(java.util.ArrayList) TransactionBuilder(nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder) BluetoothGattCharacteristic(android.bluetooth.BluetoothGattCharacteristic) IOException(java.io.IOException) BandAlarms(nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.entities.alarm.BandAlarms)

Aggregations

BluetoothGattCharacteristic (android.bluetooth.BluetoothGattCharacteristic)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 Alarm (nodomain.freeyourgadget.gadgetbridge.model.Alarm)1 TransactionBuilder (nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder)1 BandAlarm (nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.entities.alarm.BandAlarm)1 BandAlarms (nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.entities.alarm.BandAlarms)1 ByteArrayWriter (nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.util.ByteArrayWriter)1 UIntBitWriter (nodomain.freeyourgadget.gadgetbridge.service.devices.sonyswr12.util.UIntBitWriter)1