mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-09-01 03:55:47 +02:00
move some device specific preferences from GBPrefs to DevicePrefs
addresses https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/4049#issuecomment-2270266
This commit is contained in:
parent
b64841b48e
commit
80fea5b916
@ -57,7 +57,6 @@ import nodomain.freeyourgadget.gadgetbridge.entities.User;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.DeviceService;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
|
||||
|
||||
public class ConfigureReminders extends AbstractGBActivity {
|
||||
@ -103,9 +102,7 @@ public class ConfigureReminders extends AbstractGBActivity {
|
||||
public void onClick(View v) {
|
||||
final DeviceCoordinator coordinator = gbDevice.getDeviceCoordinator();
|
||||
|
||||
final GBPrefs prefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())));
|
||||
|
||||
int deviceSlots = coordinator.getReminderSlotCount(gbDevice) - prefs.getReservedReminderCalendarSlots(gbDevice);
|
||||
int deviceSlots = coordinator.getReminderSlotCount(gbDevice) - GBApplication.getDevicePrefs(gbDevice.getAddress()).getReservedReminderCalendarSlots(gbDevice);
|
||||
|
||||
if (mGBReminderListAdapter.getItemCount() >= deviceSlots) {
|
||||
// No more free slots
|
||||
|
@ -638,9 +638,8 @@ public class DBHelper {
|
||||
@NonNull
|
||||
public static List<Reminder> getReminders(@NonNull GBDevice gbDevice) {
|
||||
final DeviceCoordinator coordinator = gbDevice.getDeviceCoordinator();
|
||||
final GBPrefs prefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())));
|
||||
|
||||
final int reservedSlots = prefs.getReservedReminderCalendarSlots(gbDevice);
|
||||
final int reservedSlots = GBApplication.getDevicePrefs(gbDevice.getAddress()).getReservedReminderCalendarSlots(gbDevice);
|
||||
final int reminderSlots = coordinator.getReminderSlotCount(gbDevice);
|
||||
|
||||
try (DBHandler db = GBApplication.acquireDB()) {
|
||||
|
@ -48,7 +48,6 @@ import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.ActivityUser;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.hplus.HPlusSupport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
|
||||
import static nodomain.freeyourgadget.gadgetbridge.GBApplication.getContext;
|
||||
@ -139,18 +138,6 @@ public class HPlusCoordinator extends AbstractBLEDeviceCoordinator {
|
||||
}
|
||||
}
|
||||
|
||||
public static byte getTimeMode(String deviceAddress) {
|
||||
GBPrefs gbPrefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(deviceAddress)));
|
||||
|
||||
String tmode = gbPrefs.getTimeFormat();
|
||||
|
||||
if ("24h".equals(tmode)) {
|
||||
return HPlusConstants.ARG_TIMEMODE_24H;
|
||||
} else {
|
||||
return HPlusConstants.ARG_TIMEMODE_12H;
|
||||
}
|
||||
}
|
||||
|
||||
public static byte getUnit(String address) {
|
||||
String units = prefs.getString(SettingsActivity.PREF_MEASUREMENT_SYSTEM, getContext().getString(R.string.p_unit_metric));
|
||||
|
||||
|
@ -51,7 +51,6 @@ import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.makibeshr3.MakibesHR3DeviceSupport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
|
||||
import static nodomain.freeyourgadget.gadgetbridge.GBApplication.getContext;
|
||||
@ -79,18 +78,6 @@ public class MakibesHR3Coordinator extends AbstractBLEDeviceCoordinator {
|
||||
return !lostReminder.equals(getContext().getString(R.string.p_off));
|
||||
}
|
||||
|
||||
public static byte getTimeMode(SharedPreferences sharedPrefs) {
|
||||
GBPrefs gbPrefs = new GBPrefs(new Prefs(sharedPrefs));
|
||||
|
||||
String timeMode = gbPrefs.getTimeFormat();
|
||||
|
||||
if (timeMode.equals(getContext().getString(R.string.p_timeformat_24h))) {
|
||||
return MakibesHR3Constants.ARG_SET_TIMEMODE_24H;
|
||||
} else {
|
||||
return MakibesHR3Constants.ARG_SET_TIMEMODE_12H;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param startOut out Only hour/minute are used.
|
||||
* @param endOut out Only hour/minute are used.
|
||||
|
@ -51,7 +51,7 @@ import nodomain.freeyourgadget.gadgetbridge.Logging;
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.preferences.DevicePrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.AlarmUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.BcdUtil;
|
||||
@ -734,13 +734,6 @@ public abstract class Casio2C2DSupport extends CasioSupport {
|
||||
|
||||
public abstract boolean readValue(byte[] data, SharedPreferences.Editor editor);
|
||||
|
||||
protected Prefs getPrefs() {
|
||||
return new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()));
|
||||
}
|
||||
|
||||
protected GBPrefs getGBPrefs() {
|
||||
return new GBPrefs(getPrefs());
|
||||
}
|
||||
};
|
||||
|
||||
public abstract Casio2C2DSupport.DevicePreference[] supportedDevicePreferences();
|
||||
@ -774,20 +767,20 @@ public abstract class Casio2C2DSupport extends CasioSupport {
|
||||
|
||||
@Override
|
||||
public void updateValue(byte[] data) {
|
||||
data[index] = (byte) getGBValue();
|
||||
data[index] = (byte) getDevicePrefsValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean readValue(byte[] data, SharedPreferences.Editor editor) {
|
||||
return setGBValue(editor, data[index] & 0xff);
|
||||
return setDevicePrefsValue(editor, data[index] & 0xff);
|
||||
}
|
||||
|
||||
public int getGBValue() {
|
||||
return getPrefs().getInt(name, -1);
|
||||
public int getDevicePrefsValue() {
|
||||
return getDevicePrefs().getInt(name, -1);
|
||||
}
|
||||
|
||||
public boolean setGBValue(SharedPreferences.Editor editor, int value) {
|
||||
if (value != getGBValue()) {
|
||||
public boolean setDevicePrefsValue(SharedPreferences.Editor editor, int value) {
|
||||
if (value != getDevicePrefsValue()) {
|
||||
editor.putString(name, Integer.toString(value));
|
||||
}
|
||||
return false;
|
||||
@ -800,7 +793,7 @@ public abstract class Casio2C2DSupport extends CasioSupport {
|
||||
|
||||
@Override
|
||||
public void updateValue(byte[] data) {
|
||||
if (getGBValue()) {
|
||||
if (getDevicePrefsValue()) {
|
||||
data[index] &= ~mask;
|
||||
} else {
|
||||
data[index] |= mask;
|
||||
@ -810,18 +803,18 @@ public abstract class Casio2C2DSupport extends CasioSupport {
|
||||
@Override
|
||||
public boolean readValue(byte[] data, SharedPreferences.Editor editor) {
|
||||
if ((data[index] & mask) == 0) {
|
||||
return setGBValue(editor, true);
|
||||
return setDevicePrefsValue(editor, true);
|
||||
} else {
|
||||
return setGBValue(editor, false);
|
||||
return setDevicePrefsValue(editor, false);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean getGBValue() {
|
||||
return getPrefs().getBoolean(name, false);
|
||||
public boolean getDevicePrefsValue() {
|
||||
return getDevicePrefs().getBoolean(name, false);
|
||||
}
|
||||
|
||||
public boolean setGBValue(SharedPreferences.Editor editor, boolean value) {
|
||||
if (value != getGBValue()) {
|
||||
public boolean setDevicePrefsValue(SharedPreferences.Editor editor, boolean value) {
|
||||
if (value != getDevicePrefsValue()) {
|
||||
editor.putBoolean(name, value);
|
||||
}
|
||||
return false;
|
||||
@ -831,7 +824,7 @@ public abstract class Casio2C2DSupport extends CasioSupport {
|
||||
public class InvertedBoolDevicePreference extends BoolDevicePreference {
|
||||
@Override
|
||||
public void updateValue(byte[] data) {
|
||||
if (getGBValue()) {
|
||||
if (getDevicePrefsValue()) {
|
||||
data[index] |= mask;
|
||||
} else {
|
||||
data[index] &= ~mask;
|
||||
@ -841,15 +834,15 @@ public abstract class Casio2C2DSupport extends CasioSupport {
|
||||
@Override
|
||||
public boolean readValue(byte[] data, SharedPreferences.Editor editor) {
|
||||
if ((data[index] & mask) == 0) {
|
||||
return setGBValue(editor, false);
|
||||
return setDevicePrefsValue(editor, false);
|
||||
} else {
|
||||
return setGBValue(editor, true);
|
||||
return setDevicePrefsValue(editor, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface AutoGetter {
|
||||
public String get(GBPrefs gbPrefs);
|
||||
public String get(DevicePrefs devicePrefs);
|
||||
}
|
||||
|
||||
public class AutoBoolDevicePreference extends BoolDevicePreference {
|
||||
@ -860,15 +853,15 @@ public abstract class Casio2C2DSupport extends CasioSupport {
|
||||
String falseValue;
|
||||
|
||||
@Override
|
||||
public boolean getGBValue() {
|
||||
return getter.get(getGBPrefs()).equals(trueValue);
|
||||
public boolean getDevicePrefsValue() {
|
||||
return getter.get(getDevicePrefs()).equals(trueValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setGBValue(SharedPreferences.Editor editor, boolean value) {
|
||||
public boolean setDevicePrefsValue(SharedPreferences.Editor editor, boolean value) {
|
||||
String strValue = value ? trueValue : falseValue;
|
||||
if (!getter.get(getGBPrefs()).equals(strValue)) {
|
||||
if (getPrefs().getString(name, autoValue).equals(autoValue)) {
|
||||
if (!getter.get(getDevicePrefs()).equals(strValue)) {
|
||||
if (getDevicePrefs().getString(name, autoValue).equals(autoValue)) {
|
||||
return true;
|
||||
} else {
|
||||
editor.putString(name, strValue);
|
||||
@ -890,13 +883,13 @@ public abstract class Casio2C2DSupport extends CasioSupport {
|
||||
{ index = 14; }
|
||||
|
||||
@Override
|
||||
public int getGBValue() {
|
||||
return getPrefs().getInt(name, -1);
|
||||
public int getDevicePrefsValue() {
|
||||
return getDevicePrefs().getInt(name, -1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setGBValue(SharedPreferences.Editor editor, int value) {
|
||||
if (value != getGBValue()) {
|
||||
public boolean setDevicePrefsValue(SharedPreferences.Editor editor, int value) {
|
||||
if (value != getDevicePrefsValue()) {
|
||||
editor.putString(name, Integer.toString(value));
|
||||
}
|
||||
return false;
|
||||
@ -955,8 +948,8 @@ public abstract class Casio2C2DSupport extends CasioSupport {
|
||||
String[] languages = { "en_US", "es_ES", "fr_FR"," de_DE", "it_IT", "ru_RU" };
|
||||
|
||||
@Override
|
||||
public int getGBValue() {
|
||||
String value = getPrefs().getString(name, PREF_LANGUAGE_AUTO);
|
||||
public int getDevicePrefsValue() {
|
||||
String value = getDevicePrefs().getString(name, PREF_LANGUAGE_AUTO);
|
||||
int number = 0;
|
||||
if (value.equals(PREF_LANGUAGE_AUTO)) {
|
||||
String lang = Locale.getDefault().getLanguage() + "_";
|
||||
@ -978,9 +971,9 @@ public abstract class Casio2C2DSupport extends CasioSupport {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setGBValue(SharedPreferences.Editor editor, int value) {
|
||||
if (getGBValue() != value) {
|
||||
if (getPrefs().getString(name, PREF_LANGUAGE_AUTO).equals(PREF_LANGUAGE_AUTO)) {
|
||||
public boolean setDevicePrefsValue(SharedPreferences.Editor editor, int value) {
|
||||
if (getDevicePrefsValue() != value) {
|
||||
if (getDevicePrefs().getString(name, PREF_LANGUAGE_AUTO).equals(PREF_LANGUAGE_AUTO)) {
|
||||
return true;
|
||||
} else {
|
||||
if (value < languages.length) {
|
||||
|
@ -37,7 +37,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.casio.Casio2C2DSuppo
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.casio.gbx100.CasioGBX100DeviceSupport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.operations.OperationStatus;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.BcdUtil;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_AUTOLIGHT;
|
||||
@ -202,9 +201,8 @@ public class SetConfigurationOperation extends AbstractBTLEOperation<CasioGBX10
|
||||
return true;
|
||||
} else if(data[0] == Casio2C2DSupport.FEATURE_SETTING_FOR_BASIC) {
|
||||
SharedPreferences sharedPreferences = GBApplication.getDeviceSpecificSharedPrefs(getDevice().getAddress());
|
||||
GBPrefs gbPrefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(getDevice().getAddress())));
|
||||
|
||||
String timeformat = gbPrefs.getTimeFormat();
|
||||
String timeformat = GBApplication.getDevicePrefs(getDevice().getAddress()).getTimeFormat();
|
||||
|
||||
if(timeformat.equals(getContext().getString(R.string.p_timeformat_24h))) {
|
||||
data[1] |= 0x01;
|
||||
|
@ -208,8 +208,7 @@ public class CmfPreferences {
|
||||
}
|
||||
|
||||
private void setTimeFormat() {
|
||||
final GBPrefs gbPrefs = new GBPrefs(mSupport.getDevicePrefs());
|
||||
final String timeFormat = gbPrefs.getTimeFormat();
|
||||
final String timeFormat = mSupport.getDevicePrefs().getTimeFormat();
|
||||
|
||||
LOG.info("Setting time format to {}", timeFormat);
|
||||
|
||||
|
@ -59,7 +59,6 @@ import nodomain.freeyourgadget.gadgetbridge.model.WeatherSpec;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.btle.BLETypeConversions;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.serial.GBDeviceProtocol;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.BitmapUtil;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.NotificationUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
|
||||
@ -185,8 +184,7 @@ public class PixooProtocol extends GBDeviceProtocol {
|
||||
brightness
|
||||
});
|
||||
case DeviceSettingsPreferenceConst.PREF_TIMEFORMAT:
|
||||
final GBPrefs gbPrefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(getDevice().getAddress())));
|
||||
final String timeFormat = gbPrefs.getTimeFormat();
|
||||
final String timeFormat = getDevicePrefs().getTimeFormat();
|
||||
final boolean is24hour = DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_24H.equals(timeFormat);
|
||||
|
||||
return encodeProtocol(new byte[]{
|
||||
|
@ -61,7 +61,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.AbstractBTLEDeviceSuppo
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.btle.GattService;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateAction;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
|
||||
|
||||
@ -393,9 +392,8 @@ public final class HamaFit6900DeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
}
|
||||
|
||||
private Message.TimeFormat getDevicePrefsTimeFormat() {
|
||||
GBPrefs gbPrefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())));
|
||||
Message.TimeFormat timeFormat = null;
|
||||
switch (gbPrefs.getTimeFormat()) {
|
||||
switch (getDevicePrefs().getTimeFormat()) {
|
||||
case DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_24H:
|
||||
timeFormat = Message.TimeFormat.Format24H;
|
||||
break;
|
||||
|
@ -164,13 +164,18 @@ public class HPlusSupport extends AbstractBTLEDeviceSupport {
|
||||
return this;
|
||||
}
|
||||
|
||||
public byte getTimeMode() {
|
||||
if ("24h".equals(getDevicePrefs().getTimeFormat())) {
|
||||
return HPlusConstants.ARG_TIMEMODE_24H;
|
||||
} else {
|
||||
return HPlusConstants.ARG_TIMEMODE_12H;
|
||||
}
|
||||
}
|
||||
|
||||
private HPlusSupport setTimeMode(TransactionBuilder transaction) {
|
||||
byte value = HPlusCoordinator.getTimeMode(getDevice().getAddress());
|
||||
|
||||
transaction.write(ctrlCharacteristic, new byte[]{
|
||||
HPlusConstants.CMD_SET_TIMEMODE,
|
||||
value
|
||||
getTimeMode()
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
@ -185,7 +185,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.miband.RealtimeSampl
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.serial.GBDeviceProtocol;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.AlarmUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.NotificationUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
|
||||
@ -1029,8 +1028,7 @@ public abstract class HuamiSupport extends AbstractBTLEDeviceSupport implements
|
||||
private void sendReminders(final TransactionBuilder builder, final List<? extends Reminder> reminders) {
|
||||
final DeviceCoordinator coordinator = gbDevice.getDeviceCoordinator();
|
||||
|
||||
final GBPrefs prefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())));
|
||||
int reservedSlots = prefs.getReservedReminderCalendarSlots(gbDevice);
|
||||
int reservedSlots = GBApplication.getDevicePrefs(gbDevice.getAddress()).getReservedReminderCalendarSlots(gbDevice);
|
||||
LOG.info("On Set Reminders. Reminders: {}, Reserved slots: {}", reminders.size(), reservedSlots);
|
||||
|
||||
// Send the reminders, skipping the reserved slots for calendar events
|
||||
@ -2756,8 +2754,7 @@ public abstract class HuamiSupport extends AbstractBTLEDeviceSupport implements
|
||||
}
|
||||
final DeviceCoordinator coordinator = gbDevice.getDeviceCoordinator();
|
||||
|
||||
final GBPrefs prefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())));
|
||||
int availableSlots = prefs.getReservedReminderCalendarSlots(gbDevice);
|
||||
int availableSlots = GBApplication.getDevicePrefs(gbDevice.getAddress()).getReservedReminderCalendarSlots(gbDevice);
|
||||
|
||||
CalendarManager upcomingEvents = new CalendarManager(getContext(), getDevice().getAddress());
|
||||
List<CalendarEvent> calendarEvents = upcomingEvents.getCalendarEventList();
|
||||
@ -3376,8 +3373,7 @@ public abstract class HuamiSupport extends AbstractBTLEDeviceSupport implements
|
||||
}
|
||||
|
||||
protected HuamiSupport setTimeFormat(TransactionBuilder builder) {
|
||||
GBPrefs gbPrefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())));
|
||||
String timeFormat = gbPrefs.getTimeFormat();
|
||||
String timeFormat = GBApplication.getDevicePrefs(gbDevice.getAddress()).getTimeFormat();
|
||||
|
||||
LOG.info("Setting time format to " + timeFormat);
|
||||
if (timeFormat.equals(DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_24H)) {
|
||||
|
@ -1047,8 +1047,7 @@ public class ZeppOsSupport extends HuamiSupport implements ZeppOsFileTransferSer
|
||||
|
||||
@Override
|
||||
protected ZeppOsSupport setTimeFormat(final TransactionBuilder builder) {
|
||||
final GBPrefs gbPrefs = new GBPrefs(getDevicePrefs());
|
||||
final String timeFormat = gbPrefs.getTimeFormat();
|
||||
final String timeFormat = getDevicePrefs().getTimeFormat();
|
||||
|
||||
// FIXME: This "works", but the band does not update when the setting changes, so we don't do anything
|
||||
//noinspection ConstantValue
|
||||
|
@ -76,6 +76,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.AbstractBTLEDeviceSuppo
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.serial.GBDeviceProtocol;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.preferences.DevicePrefs;
|
||||
|
||||
public class MakibesHR3DeviceSupport extends AbstractBTLEDeviceSupport implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
@ -430,6 +431,7 @@ public class MakibesHR3DeviceSupport extends AbstractBTLEDeviceSupport implement
|
||||
this.fetch(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||
LOG.debug(key + " changed");
|
||||
|
||||
@ -1000,9 +1002,19 @@ public class MakibesHR3DeviceSupport extends AbstractBTLEDeviceSupport implement
|
||||
return this;
|
||||
}
|
||||
|
||||
public byte getTimeMode(SharedPreferences sharedPrefs) {
|
||||
String timeMode = new DevicePrefs(sharedPrefs).getTimeFormat();
|
||||
|
||||
if (timeMode.equals(getContext().getString(R.string.p_timeformat_24h))) {
|
||||
return MakibesHR3Constants.ARG_SET_TIMEMODE_24H;
|
||||
} else {
|
||||
return MakibesHR3Constants.ARG_SET_TIMEMODE_12H;
|
||||
}
|
||||
}
|
||||
|
||||
private MakibesHR3DeviceSupport setTimeMode(TransactionBuilder transactionBuilder, SharedPreferences sharedPreferences) {
|
||||
return this.setTimeMode(transactionBuilder,
|
||||
MakibesHR3Coordinator.getTimeMode(sharedPreferences));
|
||||
getTimeMode(sharedPreferences));
|
||||
}
|
||||
|
||||
private MakibesHR3DeviceSupport setEnableRealTimeHeartRate(TransactionBuilder transaction, boolean enable) {
|
||||
|
@ -107,7 +107,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.withingssteelhr.comm
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.withingssteelhr.communication.notification.NotificationProvider;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.withingssteelhr.communication.notification.NotificationSource;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
|
||||
|
||||
@ -725,10 +724,7 @@ public class WithingsSteelHRDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
}
|
||||
|
||||
private short getTimeMode() {
|
||||
GBPrefs gbPrefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())));
|
||||
String tmode = gbPrefs.getTimeFormat();
|
||||
|
||||
if ("24h".equals(tmode)) {
|
||||
if ("24h".equals(getDevicePrefs().getTimeFormat())) {
|
||||
return UserUnitConstants.UNIT_24H;
|
||||
} else {
|
||||
return UserUnitConstants.UNIT_12H;
|
||||
|
@ -59,7 +59,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.xiaomi.XiaomiPrefere
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.xiaomi.XiaomiSupport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.CheckSums;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.SilentMode;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
|
||||
@ -287,8 +286,7 @@ public class XiaomiSystemService extends AbstractXiaomiService implements Xiaomi
|
||||
final Calendar now = GregorianCalendar.getInstance();
|
||||
final TimeZone tz = TimeZone.getDefault();
|
||||
|
||||
final GBPrefs gbPrefs = new GBPrefs(GBApplication.getDeviceSpecificSharedPrefs(getSupport().getDevice().getAddress()));
|
||||
final String timeFormat = gbPrefs.getTimeFormat();
|
||||
final String timeFormat = getDevicePrefs().getTimeFormat();
|
||||
final boolean is24hour = DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_24H.equals(timeFormat);
|
||||
|
||||
final XiaomiProto.Clock clock = XiaomiProto.Clock.newBuilder()
|
||||
|
@ -70,7 +70,6 @@ import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.SetDeviceStateA
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.btle.actions.WaitAction;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.AlarmUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.calendar.CalendarManager;
|
||||
|
||||
@ -1692,9 +1691,7 @@ public class ZeTimeDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
}
|
||||
|
||||
private void setTimeFormate(TransactionBuilder builder) {
|
||||
GBPrefs gbPrefs = new GBPrefs(new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress())));
|
||||
|
||||
String timeFormat = gbPrefs.getTimeFormat();
|
||||
String timeFormat = getDevicePrefs().getTimeFormat();
|
||||
int type = 1;
|
||||
if ("am/pm".equals(timeFormat)) {
|
||||
type = 2;
|
||||
|
@ -32,7 +32,7 @@ import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.Reminder;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.WeatherSpec;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.WorldClock;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.preferences.DevicePrefs;
|
||||
|
||||
public abstract class GBDeviceProtocol {
|
||||
|
||||
@ -181,7 +181,7 @@ public abstract class GBDeviceProtocol {
|
||||
return null;
|
||||
}
|
||||
|
||||
protected Prefs getDevicePrefs() {
|
||||
return new Prefs(GBApplication.getDeviceSpecificSharedPrefs(getDevice().getAddress()));
|
||||
protected DevicePrefs getDevicePrefs() {
|
||||
return GBApplication.getDevicePrefs(getDevice().getAddress());
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Copyright (C) 2016-2024 Andreas Shimokawa, Anemograph, Carsten Pfeiffer,
|
||||
Daniel Dakhno, Daniele Gobbetti, Davis Mosenkovs, Dikay900, Felix Konstantin
|
||||
Maurer, José Rebelo, Petr Vaněk, Johannes Krude
|
||||
Maurer, José Rebelo, Petr Vaněk
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
@ -25,7 +25,6 @@ import android.content.pm.PackageManager;
|
||||
import android.location.Criteria;
|
||||
import android.location.Location;
|
||||
import android.location.LocationManager;
|
||||
import android.text.format.DateFormat;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.core.app.ActivityCompat;
|
||||
@ -33,7 +32,6 @@ import androidx.core.app.ActivityCompat;
|
||||
import java.text.ParseException;
|
||||
import java.time.LocalTime;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
@ -117,42 +115,6 @@ public class GBPrefs extends Prefs {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getTimeFormat() {
|
||||
String timeFormat = getString(DeviceSettingsPreferenceConst.PREF_TIMEFORMAT, DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_AUTO);
|
||||
if (DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_AUTO.equals(timeFormat)) {
|
||||
if (DateFormat.is24HourFormat(GBApplication.getContext())) {
|
||||
timeFormat = DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_24H;
|
||||
} else {
|
||||
timeFormat = DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_12H;
|
||||
}
|
||||
}
|
||||
|
||||
return timeFormat;
|
||||
}
|
||||
|
||||
public String getDateFormatDayMonthOrder() {
|
||||
String dateFormat = getString(DeviceSettingsPreferenceConst.PREF_DATEFORMAT, DeviceSettingsPreferenceConst.PREF_DATEFORMAT_AUTO);
|
||||
if (DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_AUTO.equals(dateFormat)) {
|
||||
String pattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "dM");
|
||||
boolean quoted = false;
|
||||
for (char c: pattern.toCharArray()) {
|
||||
if (c == '\'') {
|
||||
quoted = !quoted;
|
||||
continue;
|
||||
}
|
||||
if (quoted)
|
||||
continue;
|
||||
if (c == 'd')
|
||||
return DeviceSettingsPreferenceConst.PREF_DATEFORMAT_DAY_MONTH;
|
||||
if (c == 'M' || c == 'L')
|
||||
return DeviceSettingsPreferenceConst.PREF_DATEFORMAT_MONTH_DAY;
|
||||
}
|
||||
return DeviceSettingsPreferenceConst.PREF_DATEFORMAT_DAY_MONTH;
|
||||
}
|
||||
|
||||
return dateFormat;
|
||||
}
|
||||
|
||||
public float[] getLongLat(Context context) {
|
||||
float latitude = getFloat("location_latitude", 0);
|
||||
float longitude = getFloat("location_longitude", 0);
|
||||
@ -187,14 +149,6 @@ public class GBPrefs extends Prefs {
|
||||
return getLocalTime("notification_times_end", "22:00");
|
||||
}
|
||||
|
||||
public int getReservedReminderCalendarSlots(GBDevice gbDevice) {
|
||||
if (!gbDevice.getDeviceCoordinator().getReserveReminderSlotsForCalendar())
|
||||
return 0;
|
||||
if (!getBoolean(DeviceSettingsPreferenceConst.PREF_SYNC_CALENDAR, false))
|
||||
return 0;
|
||||
return getInt(DeviceSettingsPreferenceConst.PREF_RESERVE_REMINDERS_CALENDAR, 9);
|
||||
}
|
||||
|
||||
public boolean isMetricUnits() {
|
||||
return getString(SettingsActivity.PREF_MEASUREMENT_SYSTEM, "metric").equals("metric");
|
||||
}
|
||||
|
@ -1,11 +1,35 @@
|
||||
/* Copyright (C) 2016-2024 Andreas Shimokawa, Anemograph, Carsten Pfeiffer,
|
||||
Daniel Dakhno, Daniele Gobbetti, Davis Mosenkovs, Dikay900, Felix Konstantin
|
||||
Maurer, José Rebelo, Petr Vaněk, Johannes Krude
|
||||
|
||||
This file is part of Gadgetbridge.
|
||||
|
||||
Gadgetbridge is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Gadgetbridge is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
package nodomain.freeyourgadget.gadgetbridge.util.preferences;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.*;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.text.format.DateFormat;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.BatteryConfig;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst;
|
||||
|
||||
public class DevicePrefs extends Prefs {
|
||||
public DevicePrefs(final SharedPreferences preferences) {
|
||||
@ -43,4 +67,49 @@ public class DevicePrefs extends Prefs {
|
||||
public boolean getFetchUnknownFiles() {
|
||||
return getBoolean("fetch_unknown_files", false);
|
||||
}
|
||||
|
||||
public String getTimeFormat() {
|
||||
String timeFormat = getString(DeviceSettingsPreferenceConst.PREF_TIMEFORMAT, DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_AUTO);
|
||||
if (DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_AUTO.equals(timeFormat)) {
|
||||
if (DateFormat.is24HourFormat(GBApplication.getContext())) {
|
||||
timeFormat = DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_24H;
|
||||
} else {
|
||||
timeFormat = DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_12H;
|
||||
}
|
||||
}
|
||||
|
||||
return timeFormat;
|
||||
}
|
||||
|
||||
public String getDateFormatDayMonthOrder() {
|
||||
String dateFormat = getString(DeviceSettingsPreferenceConst.PREF_DATEFORMAT, DeviceSettingsPreferenceConst.PREF_DATEFORMAT_AUTO);
|
||||
if (DeviceSettingsPreferenceConst.PREF_TIMEFORMAT_AUTO.equals(dateFormat)) {
|
||||
String pattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "dM");
|
||||
boolean quoted = false;
|
||||
for (char c: pattern.toCharArray()) {
|
||||
if (c == '\'') {
|
||||
quoted = !quoted;
|
||||
continue;
|
||||
}
|
||||
if (quoted)
|
||||
continue;
|
||||
if (c == 'd')
|
||||
return DeviceSettingsPreferenceConst.PREF_DATEFORMAT_DAY_MONTH;
|
||||
if (c == 'M' || c == 'L')
|
||||
return DeviceSettingsPreferenceConst.PREF_DATEFORMAT_MONTH_DAY;
|
||||
}
|
||||
return DeviceSettingsPreferenceConst.PREF_DATEFORMAT_DAY_MONTH;
|
||||
}
|
||||
|
||||
return dateFormat;
|
||||
}
|
||||
|
||||
public int getReservedReminderCalendarSlots(GBDevice gbDevice) {
|
||||
if (!gbDevice.getDeviceCoordinator().getReserveReminderSlotsForCalendar())
|
||||
return 0;
|
||||
if (!getBoolean(DeviceSettingsPreferenceConst.PREF_SYNC_CALENDAR, false))
|
||||
return 0;
|
||||
return getInt(DeviceSettingsPreferenceConst.PREF_RESERVE_REMINDERS_CALENDAR, 9);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user