1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-08-27 17:50:57 +02:00

changed parameter from byte to enum

This commit is contained in:
dakhnod 2019-10-21 15:14:32 +02:00
parent b7277f02a6
commit a2060470f8
6 changed files with 43 additions and 16 deletions

View File

@ -9,11 +9,11 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.Pla
public class PackageConfig implements Serializable { public class PackageConfig implements Serializable {
private short min, hour; private short min, hour;
private String packageName, appName; private String packageName, appName;
private int vibration; private PlayNotificationRequest.VibrationType vibration;
private boolean respectSilentMode; private boolean respectSilentMode;
private long id = -1; private long id = -1;
PackageConfig(short min, short hour, String packageName, String appName, boolean respectSilentMode, int vibration) { PackageConfig(short min, short hour, String packageName, String appName, boolean respectSilentMode, PlayNotificationRequest.VibrationType vibration) {
this.min = min; this.min = min;
this.hour = hour; this.hour = hour;
this.packageName = packageName; this.packageName = packageName;
@ -22,7 +22,7 @@ public class PackageConfig implements Serializable {
this.vibration = vibration; this.vibration = vibration;
} }
PackageConfig(short min, short hour, String packageName, String appName, boolean respectSilentMode, int vibration, long id) { PackageConfig(short min, short hour, String packageName, String appName, boolean respectSilentMode, PlayNotificationRequest.VibrationType vibration, long id) {
this.min = min; this.min = min;
this.hour = hour; this.hour = hour;
this.packageName = packageName; this.packageName = packageName;
@ -37,15 +37,15 @@ public class PackageConfig implements Serializable {
this.packageName = packageName; this.packageName = packageName;
this.appName = appName; this.appName = appName;
this.respectSilentMode = false; this.respectSilentMode = false;
this.vibration = PlayNotificationRequest.VibrationType.SINGLE_NORMAL.getValue(); this.vibration = PlayNotificationRequest.VibrationType.SINGLE_NORMAL;
this.id = -1; this.id = -1;
} }
public int getVibration() { public PlayNotificationRequest.VibrationType getVibration() {
return vibration; return vibration;
} }
public void setVibration(int vibration) { public void setVibration(PlayNotificationRequest.VibrationType vibration) {
this.vibration = vibration; this.vibration = vibration;
} }

View File

@ -9,6 +9,7 @@ import android.util.Log;
import java.util.ArrayList; import java.util.ArrayList;
import nodomain.freeyourgadget.gadgetbridge.database.DBOpenHelper; import nodomain.freeyourgadget.gadgetbridge.database.DBOpenHelper;
import nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.PlayNotificationRequest;
public class PackageConfigHelper extends DBOpenHelper { public class PackageConfigHelper extends DBOpenHelper {
public static final String DB_NAME = "qhybridNotifications.db"; public static final String DB_NAME = "qhybridNotifications.db";
@ -36,7 +37,7 @@ public class PackageConfigHelper extends DBOpenHelper {
values.put(DB_APPNAME, settings.getAppName()); values.put(DB_APPNAME, settings.getAppName());
values.put(DB_HOUR, settings.getHour()); values.put(DB_HOUR, settings.getHour());
values.put(DB_MINUTE, settings.getMin()); values.put(DB_MINUTE, settings.getMin());
values.put(DB_VIBRATION, settings.getVibration()); values.put(DB_VIBRATION, settings.getVibration().getValue());
values.put(DB_RESPECT_SILENT, settings.getRespectSilentMode()); values.put(DB_RESPECT_SILENT, settings.getRespectSilentMode());
if(settings.getId() == -1) { if(settings.getId() == -1) {
@ -67,7 +68,7 @@ public class PackageConfigHelper extends DBOpenHelper {
cursor.getString(packageNamePos), cursor.getString(packageNamePos),
cursor.getString(appNamePos), cursor.getString(appNamePos),
cursor.getInt(silentPos) == 1, cursor.getInt(silentPos) == 1,
cursor.getInt(vibrationPos), PlayNotificationRequest.VibrationType.fromValue((byte)cursor.getInt(vibrationPos)),
cursor.getInt(idPos) cursor.getInt(idPos)
)); ));
Log.d("Settings", "setting #" + cursor.getPosition() + ": " + cursor.getInt(silentPos)); Log.d("Settings", "setting #" + cursor.getPosition() + ": " + cursor.getInt(silentPos));
@ -91,7 +92,7 @@ public class PackageConfigHelper extends DBOpenHelper {
c.getString(c.getColumnIndex(DB_PACKAGE)), c.getString(c.getColumnIndex(DB_PACKAGE)),
c.getString(c.getColumnIndex(DB_APPNAME)), c.getString(c.getColumnIndex(DB_APPNAME)),
c.getInt(c.getColumnIndex(DB_RESPECT_SILENT)) == 1, c.getInt(c.getColumnIndex(DB_RESPECT_SILENT)) == 1,
c.getInt(c.getColumnIndex(DB_VIBRATION)), PlayNotificationRequest.VibrationType.fromValue((byte)c.getInt(c.getColumnIndex(DB_VIBRATION))),
c.getInt(c.getColumnIndex(DB_ID)) c.getInt(c.getColumnIndex(DB_ID))
); );
c.close(); c.close();

View File

@ -29,7 +29,7 @@ public class TaskerPluginActivity extends AbstractPluginActivity {
group = findViewById(R.id.qhybrid_tasker_vibration); group = findViewById(R.id.qhybrid_tasker_vibration);
for(PlayNotificationRequest.VibrationType type : PlayNotificationRequest.VibrationType.values()){ for(PlayNotificationRequest.VibrationType type : PlayNotificationRequest.VibrationType.values()){
RadioButton button = new RadioButton(this); RadioButton button = new RadioButton(this);
button.setText(type.name() + " (" + type.getValue() + ")"); button.setText(type.name() + " (" + type.name() + ")");
button.setId(type.getValue()); button.setId(type.getValue());
group.addView(button); group.addView(button);
} }

View File

@ -6,6 +6,7 @@ import android.content.Intent;
import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport;
import nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.PlayNotificationRequest;
public class TaskerPluginReceiver extends BroadcastReceiver { public class TaskerPluginReceiver extends BroadcastReceiver {
@ -18,7 +19,14 @@ public class TaskerPluginReceiver extends BroadcastReceiver {
int minDegrees = (int)Float.parseFloat(min); int minDegrees = (int)Float.parseFloat(min);
int hourDegrees = (int)Float.parseFloat(hour); int hourDegrees = (int)Float.parseFloat(hour);
PackageConfig config = new PackageConfig((short)minDegrees, (short)hourDegrees, null, null, false, Integer.parseInt(vibration)); PackageConfig config = new PackageConfig(
(short)minDegrees,
(short)hourDegrees,
null,
null,
false,
PlayNotificationRequest.VibrationType.fromValue(Byte.parseByte(vibration))
);
Intent send = new Intent(QHybridSupport.QHYBRID_COMMAND_NOTIFICATION); Intent send = new Intent(QHybridSupport.QHYBRID_COMMAND_NOTIFICATION);
send.putExtra("CONFIG", config); send.putExtra("CONFIG", config);

View File

@ -99,11 +99,11 @@ public class TimePicker extends AlertDialog.Builder {
group.addView(button); group.addView(button);
} }
group.check(settings.getVibration()); group.check(settings.getVibration().getValue());
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override @Override
public void onCheckedChanged(RadioGroup radioGroup, int i) { public void onCheckedChanged(RadioGroup radioGroup, int i) {
settings.setVibration(i); settings.setVibration(PlayNotificationRequest.VibrationType.fromValue((byte)i));
if(TimePicker.this.vibrationListener != null) TimePicker.this.vibrationListener.onVibrationSet(settings); if(TimePicker.this.vibrationListener != null) TimePicker.this.vibrationListener.onVibrationSet(settings);
} }
}); });

View File

@ -1,6 +1,7 @@
package nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests; package nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.security.InvalidParameterException;
public class PlayNotificationRequest extends Request { public class PlayNotificationRequest extends Request {
@ -14,23 +15,31 @@ public class PlayNotificationRequest extends Request {
SINGLE_LONG(8), SINGLE_LONG(8),
NO_VIBE(9); NO_VIBE(9);
public byte value; private byte value;
VibrationType(int value) { VibrationType(int value) {
this.value = (byte)value; this.value = (byte)value;
} }
public static VibrationType fromValue(byte value){
for(VibrationType type : values()){
if(type.getValue() == value) return type;
}
throw new InvalidParameterException("vibration Type not supported");
}
public byte getValue() { public byte getValue() {
return value; return value;
} }
} }
public PlayNotificationRequest(int vibrationType, int degreesHour, int degreesMins){ public PlayNotificationRequest(VibrationType vibrationType, int degreesHour, int degreesMins, int degreesActivityHand){
int length = 0; int length = 0;
if(degreesHour > -1) length++; if(degreesHour > -1) length++;
if(degreesMins > -1) length++; if(degreesMins > -1) length++;
if(degreesActivityHand > -1) length++;
ByteBuffer buffer = createBuffer(length * 2 + 10); ByteBuffer buffer = createBuffer(length * 2 + 10);
buffer.put((byte)vibrationType); buffer.put(vibrationType.getValue());
buffer.put((byte)5); buffer.put((byte)5);
buffer.put((byte)(length * 2 + 2)); buffer.put((byte)(length * 2 + 2));
buffer.putShort((short)0); buffer.putShort((short)0);
@ -40,9 +49,18 @@ public class PlayNotificationRequest extends Request {
if(degreesMins > -1){ if(degreesMins > -1){
buffer.putShort((short)((degreesMins % 360) | (2 << 12))); buffer.putShort((short)((degreesMins % 360) | (2 << 12)));
} }
if(degreesActivityHand > -1) {
buffer.putShort((short)((degreesActivityHand % 360) | (3 << 12)));
}
this.data = buffer.array(); this.data = buffer.array();
} }
public PlayNotificationRequest(VibrationType vibrationType, int degreesHour, int degreesMins){
this(vibrationType, degreesHour, degreesMins, -1);
}
@Override @Override
public byte[] getStartSequence() { public byte[] getStartSequence() {
return new byte[]{2, 7, 15, 10, 1}; return new byte[]{2, 7, 15, 10, 1};