mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-12-26 18:45:49 +01:00
Move settings to per device (gear icon)
Add missing files
This commit is contained in:
parent
61da55e0de
commit
7dab1cb0f7
@ -75,10 +75,6 @@
|
||||
android:name=".devices.zetime.ZeTimePreferenceActivity"
|
||||
android:label="@string/zetime_title_settings"
|
||||
android:parentActivityName=".activities.SettingsActivity" />
|
||||
<activity
|
||||
android:name=".devices.lenovo.watchxplus.WatchXPlusPreferenceActivity"
|
||||
android:label="@string/preferences_watchxplus_settings"
|
||||
android:parentActivityName=".activities.SettingsActivity" />
|
||||
<activity
|
||||
android:name=".activities.ActivitySummariesActivity"
|
||||
android:label="@string/activity_summaries"
|
||||
@ -414,7 +410,7 @@
|
||||
android:label="@string/title_activity_watch9_pairing" />
|
||||
<activity
|
||||
android:name=".devices.lenovo.LenovoWatchCalibrationActivity"
|
||||
android:label="@string/title_activity_watchXplus_calibration" />
|
||||
android:label="@string/title_activity_LenovoWatch_calibration" />
|
||||
<activity
|
||||
android:name=".activities.charts.ChartsActivity"
|
||||
android:label="@string/title_activity_charts"
|
||||
|
@ -54,14 +54,11 @@ import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.database.PeriodicExporter;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceManager;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.lenovo.watchxplus.WatchXPlusConstants;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.lenovo.watchxplus.WatchXPlusPreferenceActivity;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandPreferencesActivity;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.qhybrid.ConfigActivity;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.zetime.ZeTimePreferenceActivity;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.charts.ChartsPreferencesActivity;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.CannedMessagesSpec;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.lenovo.watchxplus.WatchXPlusDeviceSupport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.AndroidUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||
@ -138,15 +135,6 @@ public class SettingsActivity extends AbstractSettingsActivity {
|
||||
}
|
||||
});
|
||||
|
||||
pref = findPreference("pref_key_watchxplus");
|
||||
pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
Intent enableIntent = new Intent(SettingsActivity.this, WatchXPlusPreferenceActivity.class);
|
||||
startActivity(enableIntent);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
pref = findPreference("pref_key_blacklist");
|
||||
pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
|
@ -33,4 +33,13 @@ public class DeviceSettingsPreferenceConst {
|
||||
|
||||
public static final String PREF_HYBRID_HR_FORCE_WHITE_COLOR = "force_white_color_scheme";
|
||||
public static final String PREF_HYBRID_HR_DRAW_WIDGET_CIRCLES = "widget_draw_circles";
|
||||
|
||||
public static final String PREF_LIFTWRIST_NOSHED = "activate_display_on_lift_wrist_noshed";
|
||||
public static final String PREF_DISCONNECTNOTIF_NOSHED = "disconnect_notification_noshed";
|
||||
public static final String PREF_POWER_MODE = "power_mode";
|
||||
public static final String PREF_BUTTON_BP_CALIBRATE = "prefs_sensors_button_bp_calibration";
|
||||
public static final String PREF_ALTITUDE_CALIBRATE = "pref_sensors_altitude";
|
||||
public static final String PREF_LONGSIT_PERIOD = "pref_longsit_period";
|
||||
public static final String PREF_LONGSIT_SWITCH = "pref_longsit_switch";
|
||||
public static final String PREF_DO_NOT_DISTURB_NOAUTO = "do_not_disturb_no_auto";
|
||||
}
|
@ -45,10 +45,18 @@ import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.Dev
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DATEFORMAT;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_HYBRID_HR_DRAW_WIDGET_CIRCLES;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_HYBRID_HR_FORCE_WHITE_COLOR;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_LIFTWRIST_NOSHED;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DISCONNECTNOTIF_NOSHED;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_POWER_MODE;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_BUTTON_BP_CALIBRATE;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_ALTITUDE_CALIBRATE;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_LONGSIT_PERIOD;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_LONGSIT_SWITCH;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_SCREEN_ORIENTATION;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_TIMEFORMAT;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_VIBRATION_STRENGH_PERCENTAGE;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_WEARLOCATION;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DO_NOT_DISTURB_NOAUTO;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_ACTIVATE_DISPLAY_ON_LIFT;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DISCONNECT_NOTIFICATION;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DISCONNECT_NOTIFICATION_END;
|
||||
@ -323,10 +331,19 @@ public class DeviceSpecificSettingsFragment extends PreferenceFragmentCompat {
|
||||
addPreferenceHandlerFor(PREF_BUTTON_2_FUNCTION);
|
||||
addPreferenceHandlerFor(PREF_BUTTON_3_FUNCTION);
|
||||
addPreferenceHandlerFor(PREF_VIBRATION_STRENGH_PERCENTAGE);
|
||||
addPreferenceHandlerFor(PREF_POWER_MODE);
|
||||
addPreferenceHandlerFor(PREF_LIFTWRIST_NOSHED);
|
||||
addPreferenceHandlerFor(PREF_DISCONNECTNOTIF_NOSHED);
|
||||
addPreferenceHandlerFor(PREF_BUTTON_BP_CALIBRATE);
|
||||
addPreferenceHandlerFor(PREF_ALTITUDE_CALIBRATE);
|
||||
addPreferenceHandlerFor(PREF_LONGSIT_PERIOD);
|
||||
addPreferenceHandlerFor(PREF_LONGSIT_SWITCH);
|
||||
addPreferenceHandlerFor(PREF_DO_NOT_DISTURB_NOAUTO);
|
||||
|
||||
addPreferenceHandlerFor(PREF_HYBRID_HR_DRAW_WIDGET_CIRCLES);
|
||||
addPreferenceHandlerFor(PREF_HYBRID_HR_FORCE_WHITE_COLOR);
|
||||
|
||||
|
||||
String displayOnLiftState = prefs.getString(PREF_ACTIVATE_DISPLAY_ON_LIFT, PREF_DO_NOT_DISTURB_OFF);
|
||||
boolean displayOnLiftScheduled = displayOnLiftState.equals(PREF_DO_NOT_DISTURB_SCHEDULED);
|
||||
|
||||
|
@ -30,29 +30,31 @@ public final class WatchXPlusConstants extends LenovoWatchConstants {
|
||||
public static final UUID UUID_CHARACTERISTIC_UNKNOWN_3 = UUID.fromString("0000a803-0000-1000-8000-00805f9b34fb");
|
||||
public static final UUID UUID_CHARACTERISTIC_UNKNOWN_4 = UUID.fromString("0000a804-0000-1000-8000-00805f9b34fb");
|
||||
|
||||
public static final String PREF_ACTIVATE_DISPLAY = "activate_display_on_lift_wrist";
|
||||
public static final String PREF_DISCONNECT_REMIND = "disconnect_notification";
|
||||
|
||||
|
||||
public static final String PREF_FIND_PHONE = "prefs_find_phone";
|
||||
public static final String PREF_FIND_PHONE_DURATION = "prefs_find_phone_duration";
|
||||
public static final String PREF_ALTITUDE = "pref_watchxplus_altitude";
|
||||
public static final String PREF_REPEAT = "watchxplus_repeat";
|
||||
public static final String PREF_CONTINIOUS = "watchxplus_continious";
|
||||
public static final String PREF_MISSED_CALL = "watchxplus_missed";
|
||||
public static final String PREF_MISSED_CALL_REPEAT = "watchxplus_repeat_missedcall";
|
||||
public static final String PREF_IS_BP_CALIBRATED = "watchxplus_is_bp_calibrated";
|
||||
public static final String PREF_BUTTON_REJECT = "watchxplus_button_reject";
|
||||
public static final String PREF_SHAKE_REJECT = "watchxplus_shake_reject";
|
||||
public static final String PREF_BP_CAL_LOW = "pref_wxp_bp_calibration_low";
|
||||
public static final String PREF_BP_CAL_HIGH = "pref_wxp_bp_calibration_high";
|
||||
public static final String PREF_BP_CAL_SWITCH = "wxp_button_BP_calibration_list";
|
||||
|
||||
// new
|
||||
public static final String PREF_CONTINIOUS_RING = "notification_enable_continious_ring";
|
||||
public static final String PREF_REPEAT_RING = "notification_repeat_ring";
|
||||
public static final String PREF_MISSED_CALL_ENABLE = "notification_enable_missed_call";
|
||||
public static final String PREF_MISSED_CALL_REPEAT = "notification_repeat_missed_call";
|
||||
public static final String PREF_BUTTON_REJECT = "notification_button_reject";
|
||||
public static final String PREF_SHAKE_REJECT = "notification_shake_reject";
|
||||
public static final String PREF_FORCE_TIME = "pref_device_spec_settings_force_time";
|
||||
public static final String PREF_BP_CAL_LOW = "pref_sensors_bp_calibration_low";
|
||||
public static final String PREF_BP_CAL_HIGH = "pref_sensors_bp_calibration_high";
|
||||
|
||||
public static final String PREF_DO_NOT_DISTURB = "do_not_disturb_no_auto";
|
||||
public static final String PREF_DO_NOT_DISTURB_START = "do_not_disturb_no_auto_start";
|
||||
public static final String PREF_DO_NOT_DISTURB_END = "do_not_disturb_no_auto_end";
|
||||
public static final String PREF_LONGSIT_SWITCH = "pref_watchxplus_longsit_switch";
|
||||
public static final String PREF_LONGSIT_PERIOD = "pref_watchxplus_longsit_period";
|
||||
public static final String PREF_WXP_LANGUAGE = "pref_wxp_language";
|
||||
public static final String PREF_POWER_MODE = "pref_wxp_power";
|
||||
public static final String PREF_FORCE_TIME = "pref_wxp_force_time";
|
||||
|
||||
public static final String PREF_LONGSIT_START = "pref_longsit_start";
|
||||
public static final String PREF_LONGSIT_END = "pref_longsit_end";
|
||||
|
||||
// moved to gear icon (per device settings)
|
||||
public static final String PREF_LANGUAGE = "language";
|
||||
|
||||
// time format constants
|
||||
public static final byte ARG_SET_TIMEMODE_24H = 0x00;
|
||||
|
@ -170,50 +170,17 @@ public class WatchXPlusDeviceCoordinator extends AbstractDeviceCoordinator {
|
||||
@Override
|
||||
public int[] getSupportedDeviceSpecificSettings(GBDevice device) {
|
||||
return new int[]{
|
||||
R.xml.devicesettings_liftwrist_display,
|
||||
R.xml.devicesettings_disconnectnotification,
|
||||
R.xml.devicesettings_liftwrist_display_noshed,
|
||||
R.xml.devicesettings_disconnectnotification_noshed,
|
||||
R.xml.devicesettings_donotdisturb_no_auto,
|
||||
R.xml.devicesettings_longsit,
|
||||
R.xml.devicesettings_find_phone,
|
||||
R.xml.devicesettings_timeformat,
|
||||
R.xml.devicesettings_donotdisturb_no_auto
|
||||
R.xml.devicesettings_power_mode,
|
||||
R.xml.devicesettings_watchxplus
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
Prefs from device settings on main page
|
||||
*/
|
||||
// return time format pref
|
||||
public static byte getTimeMode(SharedPreferences sharedPrefs) {
|
||||
String timeMode = sharedPrefs.getString(DeviceSettingsPreferenceConst.PREF_TIMEFORMAT, getContext().getString(R.string.p_timeformat_24h));
|
||||
assert timeMode != null;
|
||||
if (timeMode.equals(getContext().getString(R.string.p_timeformat_24h))) {
|
||||
return WatchXPlusConstants.ARG_SET_TIMEMODE_24H;
|
||||
} else {
|
||||
return WatchXPlusConstants.ARG_SET_TIMEMODE_12H;
|
||||
}
|
||||
}
|
||||
|
||||
// return watch language pref
|
||||
public static byte getLanguage() {
|
||||
int settingRead = prefs.getInt(WatchXPlusConstants.PREF_WXP_LANGUAGE, 1);
|
||||
return (byte) settingRead;
|
||||
}
|
||||
|
||||
// check if it is needed to toggle Lift Wrist to Sreen on
|
||||
public static boolean shouldEnableHeadsUpScreen(SharedPreferences sharedPrefs) {
|
||||
String liftMode = sharedPrefs.getString(WatchXPlusConstants.PREF_ACTIVATE_DISPLAY, getContext().getString(R.string.p_on));
|
||||
// WatchXPlus doesn't support scheduled intervals. Treat it as "on".
|
||||
assert liftMode != null;
|
||||
return !liftMode.equals(getContext().getString(R.string.p_off));
|
||||
}
|
||||
|
||||
// check if it is needed to toggle Disconnect reminder
|
||||
public static boolean shouldEnableDisconnectReminder(SharedPreferences sharedPrefs) {
|
||||
String lostReminder = sharedPrefs.getString(WatchXPlusConstants.PREF_DISCONNECT_REMIND, getContext().getString(R.string.p_on));
|
||||
// WatchXPlus doesn't support scheduled intervals. Treat it as "on".
|
||||
assert lostReminder != null;
|
||||
return !lostReminder.equals(getContext().getString(R.string.p_off));
|
||||
}
|
||||
|
||||
// find phone settings
|
||||
/**
|
||||
* @return {@link #FindPhone_OFF}, {@link #FindPhone_ON}, or the duration
|
||||
@ -246,21 +213,24 @@ Prefs from device settings on main page
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param startOut out Only hour/minute are used.
|
||||
* @param endOut out Only hour/minute are used.
|
||||
* @return True if DND hours are enabled.
|
||||
*/
|
||||
public static boolean getDNDHours(SharedPreferences sharedPrefs, Calendar startOut, Calendar endOut) {
|
||||
String doNotDisturb = sharedPrefs.getString(WatchXPlusConstants.PREF_DO_NOT_DISTURB, getContext().getString(R.string.p_off));
|
||||
public static boolean getDNDHours(String deviceAddress, Calendar startOut, Calendar endOut) {
|
||||
SharedPreferences prefs = GBApplication.getDeviceSpecificSharedPrefs(deviceAddress);
|
||||
String doNotDisturb = prefs.getString(WatchXPlusConstants.PREF_DO_NOT_DISTURB, getContext().getString(R.string.p_off));
|
||||
|
||||
assert doNotDisturb != null;
|
||||
if (doNotDisturb.equals(getContext().getString(R.string.p_off))) {
|
||||
LOG.info(" DND is disabled ");
|
||||
return false;
|
||||
} else {
|
||||
String start = sharedPrefs.getString(WatchXPlusConstants.PREF_DO_NOT_DISTURB_START, "00:00");
|
||||
String end = sharedPrefs.getString(WatchXPlusConstants.PREF_DO_NOT_DISTURB_END, "00:00");
|
||||
|
||||
String start = prefs.getString(WatchXPlusConstants.PREF_DO_NOT_DISTURB_START, "01:00");
|
||||
String end = prefs.getString(WatchXPlusConstants.PREF_DO_NOT_DISTURB_END, "06:00");
|
||||
|
||||
DateFormat df = new SimpleDateFormat("HH:mm");
|
||||
|
||||
@ -280,15 +250,16 @@ Prefs from device settings on main page
|
||||
* @param endOut out Only hour/minute are used.
|
||||
* @return True if DND hours are enabled.
|
||||
*/
|
||||
public static boolean getLongSitHours(SharedPreferences sharedPrefs, Calendar startOut, Calendar endOut) {
|
||||
boolean enabled = prefs.getBoolean(WatchXPlusConstants.PREF_LONGSIT_SWITCH, false);
|
||||
public static boolean getLongSitHours(String deviceAddress, Calendar startOut, Calendar endOut) {
|
||||
SharedPreferences prefs = GBApplication.getDeviceSpecificSharedPrefs(deviceAddress);
|
||||
boolean enabled = prefs.getBoolean(DeviceSettingsPreferenceConst.PREF_LONGSIT_SWITCH, false);
|
||||
|
||||
if (!enabled) {
|
||||
LOG.info(" DND is disabled ");
|
||||
LOG.info(" Long sit reminder is disabled ");
|
||||
return false;
|
||||
} else {
|
||||
String start = sharedPrefs.getString(WatchXPlusConstants.PREF_DO_NOT_DISTURB_START, "00:00");
|
||||
String end = sharedPrefs.getString(WatchXPlusConstants.PREF_DO_NOT_DISTURB_END, "00:00");
|
||||
String end = prefs.getString(WatchXPlusConstants.PREF_LONGSIT_START, "06:00");
|
||||
String start = prefs.getString(WatchXPlusConstants.PREF_LONGSIT_END, "23:00");
|
||||
|
||||
DateFormat df = new SimpleDateFormat("HH:mm");
|
||||
|
||||
@ -303,49 +274,5 @@ Prefs from device settings on main page
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Values from device specific settings page
|
||||
*/
|
||||
// read altitude from preferences
|
||||
public static int getAltitude() {
|
||||
return prefs.getInt(WatchXPlusConstants.PREF_ALTITUDE, 200);
|
||||
}
|
||||
|
||||
// read repeat call notification
|
||||
public static int getRepeatOnCall() {
|
||||
return prefs.getInt(WatchXPlusConstants.PREF_REPEAT, 1);
|
||||
}
|
||||
|
||||
//read continious call notification
|
||||
public static boolean getContiniousVibrationOnCall() {
|
||||
return prefs.getBoolean(WatchXPlusConstants.PREF_CONTINIOUS, false);
|
||||
}
|
||||
|
||||
//read missed call notification
|
||||
public static boolean getMissedCallReminder() {
|
||||
return prefs.getBoolean(WatchXPlusConstants.PREF_MISSED_CALL, false);
|
||||
}
|
||||
|
||||
//read missed call notification
|
||||
public static int getMissedCallRepeat() {
|
||||
return prefs.getInt(WatchXPlusConstants.PREF_MISSED_CALL_REPEAT, 0);
|
||||
}
|
||||
|
||||
|
||||
//read button reject call settings
|
||||
public static boolean getButtonReject() {
|
||||
return prefs.getBoolean(WatchXPlusConstants.PREF_BUTTON_REJECT, false);
|
||||
}
|
||||
|
||||
//read shake wrist reject call settings
|
||||
public static boolean getShakeReject() {
|
||||
return prefs.getBoolean(WatchXPlusConstants.PREF_SHAKE_REJECT, false);
|
||||
}
|
||||
|
||||
/*
|
||||
Other saved preferences
|
||||
*/
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,64 +0,0 @@
|
||||
/* Copyright (C) 2018-2019 Sebastian Kranz
|
||||
|
||||
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 <http://www.gnu.org/licenses/>. */
|
||||
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.lenovo.watchxplus;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractSettingsActivity;
|
||||
|
||||
public class WatchXPlusPreferenceActivity extends AbstractSettingsActivity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
addPreferencesFromResource(R.xml.watchxplus_preferences);
|
||||
|
||||
// notifications
|
||||
//addPreferenceHandlerFor(WatchXPlusConstants.PREF_REPEAT);
|
||||
//addPreferenceHandlerFor(WatchXPlusConstants.PREF_CONTINIOUS);
|
||||
//addPreferenceHandlerFor(WatchXPlusConstants.PREF_MISSED_CALL);
|
||||
//addPreferenceHandlerFor(WatchXPlusConstants.PREF_MISSED_CALL_REPEAT);
|
||||
//addPreferenceHandlerFor(WatchXPlusConstants.PREF_BUTTON_REJECT);
|
||||
//addPreferenceHandlerFor(WatchXPlusConstants.PREF_SHAKE_REJECT);
|
||||
|
||||
// settings
|
||||
addPreferenceHandlerFor(WatchXPlusConstants.PREF_POWER_MODE);
|
||||
addPreferenceHandlerFor(WatchXPlusConstants.PREF_WXP_LANGUAGE);
|
||||
addPreferenceHandlerFor(WatchXPlusConstants.PREF_LONGSIT_PERIOD);
|
||||
addPreferenceHandlerFor(WatchXPlusConstants.PREF_LONGSIT_SWITCH);
|
||||
// calibration
|
||||
addPreferenceHandlerFor(WatchXPlusConstants.PREF_ALTITUDE);
|
||||
addPreferenceHandlerFor(WatchXPlusConstants.PREF_BP_CAL_LOW);
|
||||
addPreferenceHandlerFor(WatchXPlusConstants.PREF_BP_CAL_HIGH);
|
||||
addPreferenceHandlerFor(WatchXPlusConstants.PREF_BP_CAL_SWITCH);
|
||||
|
||||
}
|
||||
|
||||
private void addPreferenceHandlerFor(final String preferenceKey) {
|
||||
Preference pref = findPreference(preferenceKey);
|
||||
pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override public boolean onPreferenceChange(Preference preference, Object newVal) {
|
||||
GBApplication.deviceService().onSendConfiguration(preferenceKey);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@ -90,6 +90,9 @@ import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
|
||||
|
||||
import static nodomain.freeyourgadget.gadgetbridge.GBApplication.getContext;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_LANGUAGE;
|
||||
|
||||
public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
private static final Prefs prefs = GBApplication.getPrefs();
|
||||
|
||||
@ -476,7 +479,7 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
LOG.info(" Time diff is too big ");
|
||||
GB.toast("Manual time calibration needed!", Toast.LENGTH_LONG, GB.WARN);
|
||||
sendNotification(WatchXPlusConstants.NOTIFICATION_CHANNEL_DEFAULT, "Calibrate time");
|
||||
boolean forceTime = prefs.getBoolean(WatchXPlusConstants.PREF_FORCE_TIME, false);
|
||||
boolean forceTime = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getBoolean(WatchXPlusConstants.PREF_FORCE_TIME, false);
|
||||
if (forceTime) {
|
||||
LOG.info(" Force set time ");
|
||||
enableCalibration(true);
|
||||
@ -626,14 +629,12 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
final int repeatDelay = 5000; // repeat delay of 5 sec (watch show call notifications for about 5 sec.)
|
||||
final int repeatMissedDelay = 60000; // repeat missed call delay of 60 sec
|
||||
// set settings for missed call
|
||||
int repeatCount = WatchXPlusDeviceCoordinator.getRepeatOnCall();
|
||||
int repeatCountMissed = WatchXPlusDeviceCoordinator.getMissedCallRepeat();
|
||||
// check if repeatCount is in boundaries min=0, max=10
|
||||
if (repeatCount < 0) repeatCount = 0;
|
||||
if (repeatCount > 10) repeatCount = 10; // limit repeats to 10
|
||||
// check if repeatCountMissed is in boundaries min=0, max=10
|
||||
if (repeatCountMissed < 0) repeatCountMissed = 0;
|
||||
if (repeatCountMissed > 10) repeatCountMissed = 10; // limit repeats to 10
|
||||
//int repeatCount = WatchXPlusDeviceCoordinator.getRepeatOnCall();
|
||||
|
||||
final boolean continuousRing = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getBoolean(WatchXPlusConstants.PREF_CONTINIOUS_RING, false);
|
||||
int repeatCount = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getInt(WatchXPlusConstants.PREF_REPEAT_RING, 0);
|
||||
final boolean enableMissedCall = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getBoolean(WatchXPlusConstants.PREF_MISSED_CALL_ENABLE, false);
|
||||
int repeatCountMissed = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getInt(WatchXPlusConstants.PREF_MISSED_CALL_REPEAT, 0);
|
||||
|
||||
switch (callSpec.command) {
|
||||
case CallSpec.CALL_INCOMING:
|
||||
@ -652,7 +653,7 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
handler.postDelayed(new Runnable() {
|
||||
public void run() {
|
||||
// Actions to do after repeatDelay seconds
|
||||
if (((isRinging) && (remainingRepeats > 0)) || ((isRinging) && (WatchXPlusDeviceCoordinator.getContiniousVibrationOnCall()))) {
|
||||
if (((isRinging) && (remainingRepeats > 0)) || ((isRinging) && (continuousRing))) {
|
||||
remainingRepeats = remainingRepeats - 1;
|
||||
sendNotification(WatchXPlusConstants.NOTIFICATION_CHANNEL_PHONE_CALL, callSpec.name);
|
||||
// re-run handler
|
||||
@ -698,7 +699,7 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
if (isMissedCall) {
|
||||
remainingMissedRepeats = repeatCountMissed;
|
||||
// send missed call notification if enabled in settings
|
||||
if (WatchXPlusDeviceCoordinator.getMissedCallReminder()) {
|
||||
if (enableMissedCall) {
|
||||
LOG.info(" Missed call reminder ");
|
||||
sendNotification(WatchXPlusConstants.NOTIFICATION_CHANNEL_PHONE_CALL, "Missed call");
|
||||
// repeat missed call notification
|
||||
@ -748,7 +749,7 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
private void handleButtonWhenRing() {
|
||||
GBDeviceEventCallControl callCmd = new GBDeviceEventCallControl();
|
||||
// get saved settings if true - reject call, otherwise ignore call
|
||||
boolean buttonReject = WatchXPlusDeviceCoordinator.getButtonReject();
|
||||
boolean buttonReject = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getBoolean(WatchXPlusConstants.PREF_BUTTON_REJECT, false);
|
||||
if (buttonReject) {
|
||||
LOG.info(" call rejected ");
|
||||
isRinging = false;
|
||||
@ -945,6 +946,7 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
public void onSendConfiguration(String config) {
|
||||
TransactionBuilder builder;
|
||||
SharedPreferences sharedPreferences = GBApplication.getDeviceSpecificSharedPrefs(this.getDevice().getAddress());
|
||||
LOG.info(" onSendConfiguration: " + config);
|
||||
try {
|
||||
builder = performInitialized("sendConfig: " + config);
|
||||
switch (config) {
|
||||
@ -956,39 +958,37 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
setFitnessGoal(builder);
|
||||
break;
|
||||
// settings from App Settings -> WatchXPlus settings
|
||||
case WatchXPlusConstants.PREF_POWER_MODE:
|
||||
case DeviceSettingsPreferenceConst.PREF_POWER_MODE:
|
||||
setPowerMode();
|
||||
break;
|
||||
case WatchXPlusConstants.PREF_WXP_LANGUAGE:
|
||||
setLanguageAndTimeFormat(builder, sharedPreferences);
|
||||
case WatchXPlusConstants.PREF_LANGUAGE:
|
||||
setLanguageAndTimeFormat(builder);
|
||||
break;
|
||||
case WatchXPlusConstants.PREF_LONGSIT_PERIOD:
|
||||
case WatchXPlusConstants.PREF_LONGSIT_SWITCH:
|
||||
setLongSitHours(builder, sharedPreferences);
|
||||
|
||||
case DeviceSettingsPreferenceConst.PREF_LONGSIT_PERIOD:
|
||||
case DeviceSettingsPreferenceConst.PREF_LONGSIT_SWITCH:
|
||||
setLongSitHours(builder);
|
||||
break;
|
||||
// calibrations
|
||||
case WatchXPlusConstants.PREF_ALTITUDE:
|
||||
case DeviceSettingsPreferenceConst.PREF_ALTITUDE_CALIBRATE:
|
||||
setAltitude(builder);
|
||||
break;
|
||||
case WatchXPlusConstants.PREF_BP_CAL_SWITCH:
|
||||
case DeviceSettingsPreferenceConst.PREF_BUTTON_BP_CALIBRATE:
|
||||
sendBloodPressureCalibration();
|
||||
break;
|
||||
// settings from device card
|
||||
case WatchXPlusConstants.PREF_ACTIVATE_DISPLAY:
|
||||
setHeadsUpScreen(builder, sharedPreferences);
|
||||
case DeviceSettingsPreferenceConst.PREF_LIFTWRIST_NOSHED:
|
||||
setHeadsUpScreen(builder);
|
||||
getShakeStatus(builder);
|
||||
break;
|
||||
case WatchXPlusConstants.PREF_DISCONNECT_REMIND:
|
||||
setDisconnectReminder(builder, sharedPreferences);
|
||||
getDisconnectReminderStatus(builder);
|
||||
case DeviceSettingsPreferenceConst.PREF_DISCONNECTNOTIF_NOSHED:
|
||||
setDisconnectReminder(builder);
|
||||
break;
|
||||
case DeviceSettingsPreferenceConst.PREF_TIMEFORMAT:
|
||||
setLanguageAndTimeFormat(builder, sharedPreferences);
|
||||
setLanguageAndTimeFormat(builder);
|
||||
break;
|
||||
case WatchXPlusConstants.PREF_DO_NOT_DISTURB:
|
||||
case WatchXPlusConstants.PREF_DO_NOT_DISTURB_START:
|
||||
case WatchXPlusConstants.PREF_DO_NOT_DISTURB_END:
|
||||
setDNDHours(builder, sharedPreferences);
|
||||
setDNDHours(builder);
|
||||
break;
|
||||
}
|
||||
builder.queue(getQueue());
|
||||
@ -999,7 +999,7 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
|
||||
@Override
|
||||
public void onReadConfiguration(String config) {
|
||||
|
||||
LOG.info(" onReadConfiguration : " + config);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1019,7 +1019,6 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
private void setLongSitHours(TransactionBuilder builder, boolean enable, int hourStart, int minuteStart, int hourEnd, int minuteEnd, int period) {
|
||||
LOG.info(" Setting Long sit reminder... Enabled:"+enable+" Period:"+period);
|
||||
LOG.info(" Setting Long sit time... Hs:"+hourEnd+" Ms:"+minuteEnd+" He:"+hourStart+" Me:"+minuteStart);
|
||||
LOG.info(" Setting Long sit DND time... Hs:"+hourStart+" Ms:"+minuteStart+" He:"+hourEnd+" Me:"+minuteEnd);
|
||||
// set Long Sit reminder time
|
||||
byte[] command = WatchXPlusConstants.CMD_INACTIVITY_REMINDER_SET;
|
||||
|
||||
@ -1043,14 +1042,15 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
|
||||
/** get Long sit settings from app, and send it to watch
|
||||
* @param builder - transaction builder
|
||||
* @param sharedPreferences - shared preferences
|
||||
*/
|
||||
private void setLongSitHours(TransactionBuilder builder, SharedPreferences sharedPreferences) {
|
||||
private void setLongSitHours(TransactionBuilder builder) {
|
||||
Calendar start = new GregorianCalendar();
|
||||
Calendar end = new GregorianCalendar();
|
||||
boolean enable = WatchXPlusDeviceCoordinator.getLongSitHours(sharedPreferences, start, end);
|
||||
boolean enable = WatchXPlusDeviceCoordinator.getLongSitHours(gbDevice.getAddress(), start, end);
|
||||
if (enable) {
|
||||
int period = prefs.getInt(WatchXPlusConstants.PREF_LONGSIT_PERIOD, 60);
|
||||
String periodString = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getString(DeviceSettingsPreferenceConst.PREF_LONGSIT_PERIOD, "60");
|
||||
int period = Integer.parseInt(periodString);
|
||||
|
||||
this.setLongSitHours(builder, enable,
|
||||
start.get(Calendar.HOUR_OF_DAY), start.get(Calendar.MINUTE),
|
||||
end.get(Calendar.HOUR_OF_DAY), end.get(Calendar.MINUTE),
|
||||
@ -1114,12 +1114,11 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
|
||||
/** get DND settings from app, and send it to watch
|
||||
* @param builder - transaction builder
|
||||
* @param sharedPreferences - shared preferences
|
||||
*/
|
||||
private void setDNDHours(TransactionBuilder builder, SharedPreferences sharedPreferences) {
|
||||
private void setDNDHours(TransactionBuilder builder) {
|
||||
Calendar start = new GregorianCalendar();
|
||||
Calendar end = new GregorianCalendar();
|
||||
boolean enable = WatchXPlusDeviceCoordinator.getDNDHours(sharedPreferences, start, end);
|
||||
boolean enable = WatchXPlusDeviceCoordinator.getDNDHours(gbDevice.getAddress(), start, end);
|
||||
if (enable) {
|
||||
this.setDNDHours(builder, enable,
|
||||
start.get(Calendar.HOUR_OF_DAY), start.get(Calendar.MINUTE),
|
||||
@ -1136,12 +1135,21 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
* modes (0- normal, 1- energysaving, 2- only watch)
|
||||
*/
|
||||
private void setPowerMode() {
|
||||
int settingRead = prefs.getInt(WatchXPlusConstants.PREF_POWER_MODE, 0);
|
||||
byte setWatchPowerMode = 0x00;
|
||||
String powermodeStr = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getString(DeviceSettingsPreferenceConst.PREF_POWER_MODE, "0");
|
||||
if (powermodeStr.equals("0")) {
|
||||
setWatchPowerMode = 0x00;
|
||||
} else if (powermodeStr.equals("1")) {
|
||||
setWatchPowerMode = 0x01;
|
||||
} else if (powermodeStr.equals("2")) {
|
||||
setWatchPowerMode = 0x02;
|
||||
}
|
||||
|
||||
byte[] bArr = new byte[1];
|
||||
bArr[0] = (byte) settingRead;
|
||||
LOG.info(" setting power mode to: " + settingRead);
|
||||
bArr[0] = (byte) setWatchPowerMode;
|
||||
LOG.info(" setting power mode to: " + setWatchPowerMode);
|
||||
try {
|
||||
TransactionBuilder builder = performInitialized("setPowerMode");
|
||||
TransactionBuilder builder = performInitialized("setWatchPowerMode");
|
||||
builder.write(getCharacteristic(WatchXPlusConstants.UUID_CHARACTERISTIC_WRITE),
|
||||
buildCommand(WatchXPlusConstants.CMD_POWER_MODE,
|
||||
WatchXPlusConstants.TASK,
|
||||
@ -1212,18 +1220,18 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
*/
|
||||
private void sendBloodPressureCalibration() {
|
||||
try {
|
||||
int beginCalibration = prefs.getInt(WatchXPlusConstants.PREF_BP_CAL_SWITCH, 0);
|
||||
if (beginCalibration == 1) {
|
||||
String beginCalibration = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getString(DeviceSettingsPreferenceConst.PREF_BUTTON_BP_CALIBRATE, "0");
|
||||
if (beginCalibration.equals("1")) {
|
||||
LOG.info(" Calibrating BP - cancel " + beginCalibration);
|
||||
return;
|
||||
}
|
||||
int mLowP = prefs.getInt(WatchXPlusConstants.PREF_BP_CAL_LOW, 80);
|
||||
int mHighP = prefs.getInt(WatchXPlusConstants.PREF_BP_CAL_HIGH, 130);
|
||||
String mLowPString = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getString(WatchXPlusConstants.PREF_BP_CAL_LOW, "80");
|
||||
int mLowP = Integer.parseInt(mLowPString);
|
||||
String mHighPString = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getString(WatchXPlusConstants.PREF_BP_CAL_HIGH, "130");
|
||||
int mHighP = Integer.parseInt(mHighPString);
|
||||
LOG.warn(" Calibrating BP ... LowP=" + mLowP + " HighP="+mHighP);
|
||||
GB.toast("Calibrating BP...", Toast.LENGTH_LONG, GB.INFO);
|
||||
|
||||
TransactionBuilder builder = performInitialized("bpCalibrate");
|
||||
|
||||
byte[] command = WatchXPlusConstants.CMD_BP_CALIBRATION;
|
||||
byte mStart = 0x01; // initiate calibration
|
||||
|
||||
@ -1290,29 +1298,6 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// not working!!!
|
||||
private void testNewCommands() {
|
||||
try {
|
||||
TransactionBuilder builder = performInitialized("test");
|
||||
|
||||
int first = prefs.getInt("wxp_newcmd_first", 0);
|
||||
int second = prefs.getInt("wxp_newcmd_second", 0);
|
||||
byte[] command = new byte[]{(byte) first, (byte) second};
|
||||
|
||||
LOG.info(" testing new command " + Arrays.toString(command));
|
||||
builder.write(getCharacteristic(WatchXPlusConstants.UUID_CHARACTERISTIC_WRITE),
|
||||
buildCommand(command,
|
||||
WatchXPlusConstants.READ_VALUE));
|
||||
|
||||
builder.queue(getQueue());
|
||||
} catch (IOException e) {
|
||||
LOG.warn(" Unable to request new command ", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onSendWeather(WeatherSpec weatherSpec) {
|
||||
try {
|
||||
@ -2020,13 +2005,12 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
|
||||
// read preferences
|
||||
private void syncPreferences(TransactionBuilder transaction) {
|
||||
SharedPreferences sharedPreferences = GBApplication.getDeviceSpecificSharedPrefs(this.getDevice().getAddress());
|
||||
this.setHeadsUpScreen(transaction, sharedPreferences); // lift wirst to screen on
|
||||
this.setDNDHours(transaction, sharedPreferences); // DND
|
||||
this.setDisconnectReminder(transaction, sharedPreferences); // disconnect reminder
|
||||
this.setLanguageAndTimeFormat(transaction, sharedPreferences); // set time mode 12/24h
|
||||
this.setHeadsUpScreen(transaction); // lift wirst to screen on
|
||||
this.setDNDHours(transaction); // DND
|
||||
this.setDisconnectReminder(transaction); // disconnect reminder
|
||||
this.setLanguageAndTimeFormat(transaction); // set time mode 12/24h
|
||||
this.setAltitude(transaction); // set altitude calibration
|
||||
this.setLongSitHours(transaction, sharedPreferences); // set Long sit reminder
|
||||
this.setLongSitHours(transaction); // set Long sit reminder
|
||||
ActivityUser activityUser = new ActivityUser();
|
||||
this.setPersonalInformation(transaction, activityUser.getHeightCm(), activityUser.getWeightKg(),
|
||||
activityUser.getAge(),activityUser.getGender());
|
||||
@ -2066,15 +2050,11 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
evaluateGBDeviceEvent(findPhoneEvent);
|
||||
}
|
||||
}
|
||||
// Set Lift Wrist to Light Screen based on saved preferences
|
||||
private void setHeadsUpScreen(TransactionBuilder transactionBuilder, SharedPreferences sharedPreferences) {
|
||||
this.setHeadsUpScreen(transactionBuilder,
|
||||
WatchXPlusDeviceCoordinator.shouldEnableHeadsUpScreen(sharedPreferences));
|
||||
}
|
||||
|
||||
// Command to toggle Lift Wrist to Light Screen, and shake to ignore/reject call
|
||||
private void setHeadsUpScreen(TransactionBuilder transactionBuilder, boolean enable) {
|
||||
boolean shakeReject = WatchXPlusDeviceCoordinator.getShakeReject();
|
||||
private void setHeadsUpScreen(TransactionBuilder transactionBuilder) {
|
||||
boolean enable = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREF_LIFTWRIST_NOSHED, false);
|
||||
boolean shakeReject = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getBoolean(WatchXPlusConstants.PREF_SHAKE_REJECT, false);
|
||||
byte refuseCall = 0x00; // force shake wrist to ignore/reject call to OFF
|
||||
// returned characteristic is equal with button press while ringing
|
||||
if (shakeReject) refuseCall = 0x01;
|
||||
@ -2094,24 +2074,15 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
liftScreen));
|
||||
}
|
||||
|
||||
private void setDisconnectReminder(TransactionBuilder transactionBuilder, SharedPreferences sharedPreferences) {
|
||||
this.setDisconnectReminder(transactionBuilder,
|
||||
WatchXPlusDeviceCoordinator.shouldEnableDisconnectReminder(sharedPreferences));
|
||||
}
|
||||
|
||||
private void setDisconnectReminder(TransactionBuilder transactionBuilder, boolean enable) {
|
||||
// command to set disconnect reminder
|
||||
private void setDisconnectReminder(TransactionBuilder transactionBuilder) {
|
||||
boolean enable = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getBoolean(DeviceSettingsPreferenceConst.PREF_DISCONNECTNOTIF_NOSHED, false);
|
||||
transactionBuilder.write(getCharacteristic(WatchXPlusConstants.UUID_CHARACTERISTIC_WRITE),
|
||||
buildCommand(WatchXPlusConstants.CMD_DISCONNECT_REMIND,
|
||||
WatchXPlusConstants.WRITE_VALUE,
|
||||
new byte[]{(byte) (enable ? 0x01 : 0x00)}));
|
||||
}
|
||||
|
||||
// Request status of Disconnect reminder
|
||||
private void getDisconnectReminderStatus(TransactionBuilder transactionBuilder) {
|
||||
transactionBuilder.write(getCharacteristic(WatchXPlusConstants.UUID_CHARACTERISTIC_WRITE),
|
||||
buildCommand(WatchXPlusConstants.CMD_DISCONNECT_REMIND,
|
||||
WatchXPlusConstants.READ_VALUE));
|
||||
}
|
||||
// Request status of Lift Wrist to Light Screen, and Shake to Ignore/Reject Call
|
||||
private void getShakeStatus(TransactionBuilder transactionBuilder) {
|
||||
transactionBuilder.write(getCharacteristic(WatchXPlusConstants.UUID_CHARACTERISTIC_WRITE),
|
||||
@ -2121,7 +2092,8 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
|
||||
// calibrate altitude
|
||||
private void setAltitude(TransactionBuilder transactionBuilder) {
|
||||
int mAltitude = WatchXPlusDeviceCoordinator.getAltitude();
|
||||
String altitudeString = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getString(DeviceSettingsPreferenceConst.PREF_ALTITUDE_CALIBRATE, "200");
|
||||
int mAltitude = Integer.parseInt(altitudeString);
|
||||
if (mAltitude < 0) {
|
||||
mAltitude = (Math.abs(mAltitude) ^ 65535) + 1;
|
||||
}
|
||||
@ -2139,22 +2111,32 @@ public class WatchXPlusDeviceSupport extends AbstractBTLEDeviceSupport {
|
||||
}
|
||||
|
||||
// set time format
|
||||
private void setLanguageAndTimeFormat(TransactionBuilder transactionBuilder, byte timeMode, byte language) {
|
||||
private void setLanguageAndTimeFormat(TransactionBuilder transactionBuilder) {
|
||||
byte setLanguage, setTimeMode;
|
||||
String languageString = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getString(WatchXPlusConstants.PREF_LANGUAGE, "1");
|
||||
if (languageString == null || languageString.equals("1")) {
|
||||
setLanguage = 0x01;
|
||||
} else {
|
||||
setLanguage = 0x00;
|
||||
}
|
||||
|
||||
String timeformatString = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getString(DeviceSettingsPreferenceConst.PREF_TIMEFORMAT, "1");
|
||||
assert timeformatString != null;
|
||||
if (timeformatString.equals(getContext().getString(R.string.p_timeformat_24h))) {
|
||||
setTimeMode = WatchXPlusConstants.ARG_SET_TIMEMODE_24H;
|
||||
} else {
|
||||
setTimeMode = WatchXPlusConstants.ARG_SET_TIMEMODE_12H;
|
||||
}
|
||||
|
||||
byte[] bArr = new byte[2];
|
||||
bArr[0] = language; //byte[08] language
|
||||
bArr[1] = timeMode; //byte[09] time
|
||||
bArr[0] = setLanguage; //byte[08] language
|
||||
bArr[1] = setTimeMode; //byte[09] time
|
||||
transactionBuilder.write(getCharacteristic(WatchXPlusConstants.UUID_CHARACTERISTIC_WRITE),
|
||||
buildCommand(WatchXPlusConstants.CMD_TIME_LANGUAGE,
|
||||
WatchXPlusConstants.WRITE_VALUE,
|
||||
bArr));
|
||||
}
|
||||
|
||||
private void setLanguageAndTimeFormat(TransactionBuilder transactionBuilder, SharedPreferences sharedPreferences) {
|
||||
this.setLanguageAndTimeFormat(transactionBuilder,
|
||||
WatchXPlusDeviceCoordinator.getTimeMode(sharedPreferences),
|
||||
WatchXPlusDeviceCoordinator.getLanguage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(getContext());
|
||||
|
@ -283,43 +283,42 @@
|
||||
<string name="watch9_calibration_button">Сверяване</string>
|
||||
<string name="title_activity_watch9_pairing">Watch 9 свързване</string>
|
||||
<string name="title_activity_watch9_calibration">Watch 9 сверяване</string>
|
||||
|
||||
<string name="title_activity_watchXplus_calibration">Watch X Plus сверяване</string>
|
||||
<string name="pref_wxp_title_unit_system">Единици</string>
|
||||
<string name="pref_wxp_title_timeformat">Формат на часа</string>
|
||||
<string name="pref_wxp_title_altitude">Калибриране на височината</string>
|
||||
<string name="pref_wxp_title_repeat_on_call">Повтаряй известие за позвъняване</string>
|
||||
<string name="pref_wxp_title_repeat_on_call_summary">Възможни стойности min=0, max=10</string>
|
||||
<string name="prefs_wxp_continious">Известявай докато телефона звъни</string>
|
||||
<string name="preferences_watchxplus_settings">Watch X Plus настройки</string>
|
||||
<string name="pref_wxp_title_reject_summary">Изкл. - заглуши, Вкл. - откажи</string>
|
||||
<string name="prefs_wxp_reject">Бутона заглушава/отказва повикване</string>
|
||||
<string name="pref_wxp_title_shake_reject_summary">Повтаря действието на бутона</string>
|
||||
<string name="prefs_wxp_shake_reject">Разклати за заглушаване/отказване на повикването</string>
|
||||
<string name="wxp_bp_calibration_prefs">Калибриране на кръвно налягане</string>
|
||||
<string name="pref_wxp_bp_calibration_low">Кръвно налягане DIASTOLIC (ниска)</string>
|
||||
<string name="pref_wxp_bp_calibration_high">Кръвно налягане SYSTOLIC (висока)</string>
|
||||
<string name="prefs_wxp_button_bp_calibration">Калибриране</string>
|
||||
<string name="prefs_wxp_button_bp_calibration_sum">Натисни тук за калибриране</string>
|
||||
<string name="pref_header_wxp_calibration">Калибриране на сензорите</string>
|
||||
<string name="pref_header_wxp_settings">Настройки на устройството</string>
|
||||
<string name="wxp_power_mode_title">Режим на часовника</string>
|
||||
<string name="wxp_mode_normal">Нормален</string>
|
||||
<string name="wxp_mode_saving">Икономичен</string>
|
||||
<string name="wxp_mode_watch">Само часовник</string>
|
||||
<string name="pref_wxp_title_repeat_on_misscall_summary">Повтаряй известие за пропуснато повикване всяка минута за X пъти</string>
|
||||
<string name="pref_wxp_title_repeat_on_misscall">Повтаряй известието за пропуснато повикване</string>
|
||||
<string name="pref_wxp_enable_misscall">Известявай за пропуснато повикване</string>
|
||||
<string name="pref_header_wxp_notification_callhandling">Управление на обажданията</string>
|
||||
<string name="pref_header_wxp_longsit">Напомняне за бездействие</string>
|
||||
<string name="pref_wxp_longsit_period_summary">Напомняй ако няма активност за повече от X минути</string>
|
||||
<string name="pref_wxp_longsit_switch_summary">Времевия интервал е от настройката за DND</string>
|
||||
<string name="prefs_wxp_longsit_switch">Включи напомняне за активност</string>
|
||||
<string name="pref_wxp_title_longsit">Период на неактивност (минути)</string>
|
||||
<string name="wxp_language_title">Език</string>
|
||||
<string name="pref_wxp_title_force_time">Принудително синхронизирай часа</string>
|
||||
<string name="pref_wxp_title_force_time_sum">Принудително синхронизирай дата и час при свързване. Стрелките може да показват грешно време.</string>
|
||||
<string name="pref_header_wxp_call_notification">Известия и Обаждания</string>
|
||||
<string name="mi2_prefs_do_not_disturb_summary">Няма да се получават известия докато е активно</string>
|
||||
<!-- WatchXPlus Preferences -->
|
||||
<string name="title_activity_LenovoWatch_calibration">Watch X Plus сверяване</string>
|
||||
<!-- Device Settings - Notifications and Calls - Used in devicesettings_watchxplus.xml -->
|
||||
<string name="pref_header_notifications_and_calls">Известия и Обаждания</string>
|
||||
<string name="pref_title_notifications_and_calls_repeat_on_call">Повтаряй известие за позвъняване</string>
|
||||
<string name="prefs_notifications_and_calls_continious_ring">Известявай докато телефона звъни</string>
|
||||
<string name="pref_notifications_and_calls_enable_misscall">Известявай за пропуснато повикване</string>
|
||||
<string name="pref_summary_notifications_and_calls_enable_misscall">Повтаря се на всяка минута</string>
|
||||
<string name="pref_title_notifications_and_calls_repeat_on_misscall">Повтаряй за Х минути</string>
|
||||
<string name="pref_header_notifications_and_calls_callhandling">Управление на обажданията</string>
|
||||
<string name="prefs_notifications_and_calls_reject">Бутона заглушава/отказва повикване</string>
|
||||
<string name="pref_summary_notifications_and_calls_title_reject">Изкл. - заглуши, Вкл. - откажи</string>
|
||||
<string name="prefs_notifications_and_calls_shake_reject">Разклати за заглушаване/отказване на повикването</string>
|
||||
<string name="pref_summary_notifications_and_calls_title_shake_reject">Повтаря действието на бутона</string>
|
||||
<!-- Device Settings - Device Settings - Used in devicesettings_watchxplus.xml -->
|
||||
<string name="pref_header_device_spec_settings">Настройки на устройството</string>
|
||||
<string name="pref_title_device_spec_settings_force_time">Принудително синхронизирай часа</string>
|
||||
<string name="pref_summary_device_spec_settings_title_force_time">Принудително синхронизирай дата и час при свързване. Стрелките може да показват грешно време.</string>
|
||||
<!-- Device Settings - Calibration - Used in devicesettings_watchxplus.xml -->
|
||||
<string name="pref_header_sensors_calibration">Калибриране на сензорите</string>
|
||||
<string name="pref_title_sensors_altitude">Калибриране на височината</string>
|
||||
<string name="pref_sensors_bp_calibration">Калибриране на кръвно налягане</string>
|
||||
<string name="pref_sensors_bp_calibration_low">Кръвно налягане DIASTOLIC (ниска)</string>
|
||||
<string name="pref_sensors_bp_calibration_high">Кръвно налягане SYSTOLIC (висока)</string>
|
||||
<string name="prefs_sensors_button_bp_calibration">Калибриране</string>
|
||||
<string name="prefs_sensors_button_bp_calibration_sum">Натисни тук за калибриране</string>
|
||||
<!-- Device Settings - Long Sit Reminder -->
|
||||
<string name="pref_summary_longsit">Напомни ако няма активност за повече от X минути</string>
|
||||
<string name="prefs_longsit_switch">Напомняне за бездействие</string>
|
||||
<string name="pref_title_longsit">Период на неактивност (минути)</string>
|
||||
<!-- Device Settings - Power Mode -->
|
||||
<string name="power_mode_title">Режим на часовника</string>
|
||||
<string name="power_mode_normal">Нормален</string>
|
||||
<string name="power_mode_saving">Икономичен</string>
|
||||
<string name="power_mode_watch">Само часовник</string>
|
||||
<string name="title_activity_sleepmonitor">Наблюдение/анализ на съня</string>
|
||||
<string name="pref_write_logfiles">Съхраняване на log файлове</string>
|
||||
<string name="initializing">Инициализиране</string>
|
||||
|
@ -69,28 +69,29 @@
|
||||
<item>never</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="wxp_language">
|
||||
<string-array name="language_only_EN_CH">
|
||||
<item name="0">@string/simplified_chinese</item>
|
||||
<item name="1">@string/english</item>
|
||||
</string-array>
|
||||
<string-array name="wxp_language_values">
|
||||
<string-array name="language_only_EN_CH_values">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
</string-array>
|
||||
<string-array name="wxp_bp_cal">
|
||||
<item name="0">@string/prefs_wxp_button_bp_calibration</item>
|
||||
<string-array name="sensors_bp_cal">
|
||||
<item name="0">@string/prefs_sensors_button_bp_calibration</item>
|
||||
<item name="1">@string/Cancel</item>
|
||||
</string-array>
|
||||
<string-array name="wxp_bp_cal_values">
|
||||
<string-array name="sensors_bp_cal_values">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
</string-array>
|
||||
<string-array name="wxp_mode">
|
||||
<item name="0">@string/wxp_mode_normal</item>
|
||||
<item name="1">@string/wxp_mode_saving</item>
|
||||
<item name="2">@string/wxp_mode_watch</item>
|
||||
|
||||
<string-array name="power_mode">
|
||||
<item name="0">@string/power_mode_normal</item>
|
||||
<item name="1">@string/power_mode_saving</item>
|
||||
<item name="2">@string/power_mode_watch</item>
|
||||
</string-array>
|
||||
<string-array name="wxp_mode_values">
|
||||
<string-array name="power_mode_values">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
|
@ -199,43 +199,40 @@
|
||||
<string name="prefs_title_all_day_heart_rate">All day heart rate measurement</string>
|
||||
<string name="preferences_hplus_settings">HPlus/Makibes settings</string>
|
||||
<!-- WatchXPlus Preferences -->
|
||||
<string name="title_activity_watchXplus_calibration">Watch X Plus calibration</string>
|
||||
<string name="pref_wxp_title_unit_system">Units</string>
|
||||
<string name="pref_wxp_title_timeformat">Time format</string>
|
||||
<string name="pref_wxp_title_altitude">Altitude calibration</string>
|
||||
<string name="pref_wxp_title_repeat_on_call">Repeat call notification</string>
|
||||
<string name="pref_wxp_title_repeat_on_call_summary">Possible values min=0, max=10</string>
|
||||
<string name="prefs_wxp_continious">Vibration during phone ring</string>
|
||||
<string name="preferences_watchxplus_settings">Watch X Plus settings</string>
|
||||
<string name="pref_header_wxp_call_notification">Notifications and Calls</string>
|
||||
<string name="pref_wxp_title_reject_summary">Off - ignore, On - reject</string>
|
||||
<string name="prefs_wxp_reject">Button ignore/reject call</string>
|
||||
<string name="pref_wxp_title_shake_reject_summary">Duplicates watch button action</string>
|
||||
<string name="prefs_wxp_shake_reject">Shake wrist ignore/reject call</string>
|
||||
<string name="wxp_bp_calibration_prefs">Blood Pressure calibration</string>
|
||||
<string name="pref_wxp_bp_calibration_low">Blood Pressure DIASTOLIC (low)</string>
|
||||
<string name="pref_wxp_bp_calibration_high">Blood Pressure SYSTOLIC (high)</string>
|
||||
<string name="prefs_wxp_button_bp_calibration">Calibration</string>
|
||||
<string name="prefs_wxp_button_bp_calibration_sum">Press here to begin calibration</string>
|
||||
<string name="pref_header_wxp_calibration">Sensors Calibration</string>
|
||||
<string name="pref_header_wxp_settings">Device settings</string>
|
||||
<string name="wxp_power_mode_title">Watch mode</string>
|
||||
<string name="wxp_mode_normal">Normal</string>
|
||||
<string name="wxp_mode_saving">Power saving</string>
|
||||
<string name="wxp_mode_watch">Only watch</string>
|
||||
<string name="pref_wxp_title_repeat_on_misscall_summary">Repeat missed call notification every minute for X times</string>
|
||||
<string name="pref_wxp_title_repeat_on_misscall">Repeat missed call notification</string>
|
||||
<string name="pref_wxp_enable_misscall">Notify for missed call</string>
|
||||
<string name="pref_header_wxp_notification_callhandling">Call Handling</string>
|
||||
<string name="pref_header_wxp_longsit">Inactivity reminder</string>
|
||||
<string name="pref_wxp_longsit_period_summary">Remind if there is no activity for more than X minutes</string>
|
||||
<string name="pref_wxp_longsit_switch_summary">Inactivity time interval is from DND setting</string>
|
||||
<string name="prefs_wxp_longsit_switch">Enable inactivity reminder</string>
|
||||
<string name="pref_wxp_title_longsit">Inactivity period (minutes)</string>
|
||||
<string name="pref_wxp_title_force_time">Force synchronize time</string>
|
||||
<string name="pref_wxp_title_force_time_sum">Force auto synchronize time on reconnect. Analog hands may show incorrect time!</string>
|
||||
<string name="wxp_language_title">Language</string>
|
||||
|
||||
<string name="title_activity_LenovoWatch_calibration">Watch X Plus calibration</string>
|
||||
<!-- Device Settings - Notifications and Calls - Used in devicesettings_watchxplus.xml -->
|
||||
<string name="pref_header_notifications_and_calls">Notifications and Calls</string>
|
||||
<string name="pref_title_notifications_and_calls_repeat_on_call">Repeat call notification</string>
|
||||
<string name="prefs_notifications_and_calls_continious_ring">Notification during phone ring</string>
|
||||
<string name="pref_notifications_and_calls_enable_misscall">Notify for missed call</string>
|
||||
<string name="pref_summary_notifications_and_calls_enable_misscall">Repeats on every minute</string>
|
||||
<string name="pref_title_notifications_and_calls_repeat_on_misscall">Repeat for X minutes</string>
|
||||
<string name="pref_header_notifications_and_calls_callhandling">Call Handling</string>
|
||||
<string name="prefs_notifications_and_calls_reject">Button ignore/reject call</string>
|
||||
<string name="pref_summary_notifications_and_calls_title_reject">Off - ignore, On - reject</string>
|
||||
<string name="prefs_notifications_and_calls_shake_reject">Shake wrist ignore/reject call</string>
|
||||
<string name="pref_summary_notifications_and_calls_title_shake_reject">Duplicates watch button action</string>
|
||||
<!-- Device Settings - Device Settings - Used in devicesettings_watchxplus.xml -->
|
||||
<string name="pref_header_device_spec_settings">Device settings</string>
|
||||
<string name="pref_title_device_spec_settings_force_time">Force synchronize time</string>
|
||||
<string name="pref_summary_device_spec_settings_title_force_time">Force auto synchronize time on reconnect. Analog hands may show incorrect time!</string>
|
||||
<!-- Device Settings - Calibration - Used in devicesettings_watchxplus.xml -->
|
||||
<string name="pref_header_sensors_calibration">Sensors Calibration</string>
|
||||
<string name="pref_title_sensors_altitude">Altitude calibration</string>
|
||||
<string name="pref_sensors_bp_calibration">Blood Pressure calibration</string>
|
||||
<string name="pref_sensors_bp_calibration_low">Blood Pressure DIASTOLIC (low)</string>
|
||||
<string name="pref_sensors_bp_calibration_high">Blood Pressure SYSTOLIC (high)</string>
|
||||
<string name="prefs_sensors_button_bp_calibration">Calibration</string>
|
||||
<string name="prefs_sensors_button_bp_calibration_sum">Press here to begin calibration</string>
|
||||
<!-- Device Settings - Long Sit Reminder -->
|
||||
<string name="pref_summary_longsit">Remind if there are inactivity for X minutes</string>
|
||||
<string name="prefs_longsit_switch">Inactivity reminder</string>
|
||||
<string name="pref_title_longsit">Inactivity period (minutes)</string>
|
||||
<!-- Device Settings - Power Mode -->
|
||||
<string name="power_mode_title">Watch power mode</string>
|
||||
<string name="power_mode_normal">Normal</string>
|
||||
<string name="power_mode_saving">Power saving</string>
|
||||
<string name="power_mode_watch">Only watch</string>
|
||||
<!-- Makibes HR3 Preferences -->
|
||||
<string name="preferences_makibes_hr3_settings">Makibes HR3 settings</string>
|
||||
<!-- ID115 Preferences -->
|
||||
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<SwitchPreference
|
||||
android:icon="@drawable/ic_signal_cellular_connected_no_internet_0_bar"
|
||||
android:defaultValue="false"
|
||||
android:key="disconnect_notification_noshed"
|
||||
android:title="@string/prefs_disconnect_notification" />
|
||||
</androidx.preference.PreferenceScreen>
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<SwitchPreference
|
||||
android:icon="@drawable/ic_arrow_upward"
|
||||
android:defaultValue="false"
|
||||
android:key="activate_display_on_lift_wrist_noshed"
|
||||
android:title="@string/mi2_prefs_activate_display_on_lift" />
|
||||
</androidx.preference.PreferenceScreen>
|
35
app/src/main/res/xml/devicesettings_longsit.xml
Normal file
35
app/src/main/res/xml/devicesettings_longsit.xml
Normal file
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_activity_sleep"
|
||||
android:key="screen_longsit"
|
||||
android:persistent="false"
|
||||
android:summary="@string/pref_summary_longsit"
|
||||
android:title="@string/prefs_longsit_switch">
|
||||
|
||||
<!-- workaround for missing toolbar -->
|
||||
<PreferenceCategory android:title="@string/pref_summary_longsit" />
|
||||
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="pref_longsit_switch"
|
||||
android:title="@string/prefs_longsit_switch" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="60"
|
||||
android:key="pref_longsit_period"
|
||||
android:summary="@string/pref_summary_longsit"
|
||||
android:title="@string/pref_title_longsit"/>
|
||||
<nodomain.freeyourgadget.gadgetbridge.util.XTimePreference
|
||||
android:defaultValue="06:00"
|
||||
android:key="pref_longsit_start"
|
||||
android:title="@string/mi2_prefs_do_not_disturb_start" />
|
||||
|
||||
<nodomain.freeyourgadget.gadgetbridge.util.XTimePreference
|
||||
android:defaultValue="23:00"
|
||||
android:key="pref_longsit_end"
|
||||
android:title="@string/mi2_prefs_do_not_disturb_end" />
|
||||
|
||||
</PreferenceScreen>
|
||||
|
||||
|
||||
</androidx.preference.PreferenceScreen>
|
11
app/src/main/res/xml/devicesettings_power_mode.xml
Normal file
11
app/src/main/res/xml/devicesettings_power_mode.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<ListPreference
|
||||
android:icon="@drawable/ic_quit"
|
||||
android:defaultValue="0"
|
||||
android:entries="@array/power_mode"
|
||||
android:entryValues="@array/power_mode_values"
|
||||
android:key="power_mode"
|
||||
android:summary="%s"
|
||||
android:title="@string/power_mode_title" />
|
||||
</androidx.preference.PreferenceScreen>
|
102
app/src/main/res/xml/devicesettings_watchxplus.xml
Normal file
102
app/src/main/res/xml/devicesettings_watchxplus.xml
Normal file
@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_find_lost_phone"
|
||||
android:key="pref_category_notifications_and_calls"
|
||||
android:title="@string/pref_header_notifications_and_calls">
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_screen_notification_profile_incoming_call"/>
|
||||
<SeekBarPreference
|
||||
android:icon="@drawable/ic_rotate_left"
|
||||
android:defaultValue="0"
|
||||
android:key="notification_repeat_ring"
|
||||
android:max="10"
|
||||
android:title="@string/pref_title_notifications_and_calls_repeat_on_call"
|
||||
app:showSeekBarValue="true" />
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="notification_enable_continious_ring"
|
||||
android:title="@string/prefs_notifications_and_calls_continious_ring" />
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_screen_notification_profile_missed_call"/>
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="notification_enable_missed_call"
|
||||
android:title="@string/pref_notifications_and_calls_enable_misscall"
|
||||
android:summary="@string/pref_summary_notifications_and_calls_enable_misscall"/>
|
||||
<SeekBarPreference
|
||||
android:icon="@drawable/ic_rotate_left"
|
||||
android:defaultValue="0"
|
||||
android:dependency="notification_enable_missed_call"
|
||||
android:key="notification_repeat_missed_call"
|
||||
android:max="10"
|
||||
android:title="@string/pref_title_notifications_and_calls_repeat_on_misscall"
|
||||
app:showSeekBarValue="true" />
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_header_notifications_and_calls_callhandling"/>
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="notification_button_reject"
|
||||
android:summary="@string/pref_summary_notifications_and_calls_title_reject"
|
||||
android:title="@string/prefs_notifications_and_calls_reject" />
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="notification_shake_reject"
|
||||
android:summary="@string/pref_summary_notifications_and_calls_title_shake_reject"
|
||||
android:title="@string/prefs_notifications_and_calls_shake_reject" />
|
||||
</PreferenceScreen>
|
||||
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_widgets"
|
||||
android:key="pref_category_device_spec_settings"
|
||||
android:title="@string/pref_header_device_spec_settings">
|
||||
<ListPreference
|
||||
android:icon="@drawable/ic_language"
|
||||
android:defaultValue="1"
|
||||
android:title="@string/pref_title_language"
|
||||
android:entries="@array/language_only_EN_CH"
|
||||
android:entryValues="@array/language_only_EN_CH_values"
|
||||
android:key="language"
|
||||
android:summary="%s" />
|
||||
<SwitchPreference
|
||||
android:icon="@drawable/ic_access_time"
|
||||
android:defaultValue="false"
|
||||
android:key="pref_device_spec_settings_force_time"
|
||||
android:summary="@string/pref_summary_device_spec_settings_title_force_time"
|
||||
android:title="@string/pref_title_device_spec_settings_force_time" />
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_activity_unknown"
|
||||
android:key="pref_sensors_calibration"
|
||||
android:title="@string/pref_header_sensors_calibration">
|
||||
<EditTextPreference
|
||||
android:icon="@drawable/ic_arrow_upward"
|
||||
android:defaultValue="200"
|
||||
android:key="pref_sensors_altitude"
|
||||
android:title="@string/pref_title_sensors_altitude"/>
|
||||
<PreferenceScreen
|
||||
android:key="pref_sensors_bp_calibration"
|
||||
android:title="@string/pref_sensors_bp_calibration">
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_sensors_bp_calibration"/>
|
||||
<EditTextPreference
|
||||
android:inputType="number"
|
||||
android:key="pref_sensors_bp_calibration_high"
|
||||
android:defaultValue="130"
|
||||
android:title="@string/pref_sensors_bp_calibration_high" />
|
||||
<EditTextPreference
|
||||
android:inputType="number"
|
||||
android:key="pref_sensors_bp_calibration_low"
|
||||
android:defaultValue="80"
|
||||
android:title="@string/pref_sensors_bp_calibration_low" />
|
||||
<ListPreference
|
||||
android:defaultValue="1"
|
||||
android:title="@string/prefs_sensors_button_bp_calibration"
|
||||
android:entries="@array/sensors_bp_cal"
|
||||
android:entryValues="@array/sensors_bp_cal_values"
|
||||
android:key="prefs_sensors_button_bp_calibration"
|
||||
android:summary="@string/prefs_sensors_button_bp_calibration_sum" />
|
||||
</PreferenceScreen>
|
||||
</PreferenceScreen>
|
||||
</androidx.preference.PreferenceScreen>
|
@ -580,12 +580,6 @@
|
||||
android:icon="@drawable/ic_device_zetime"
|
||||
android:key="pref_key_zetime"
|
||||
android:title="@string/zetime_title_settings"/>
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_device_watchxplus"
|
||||
android:key="pref_key_watchxplus"
|
||||
android:title="@string/preferences_watchxplus_settings"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
|
@ -1,133 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceCategory
|
||||
android:key="pref_category_watchxplus_notification"
|
||||
android:title="@string/pref_header_wxp_call_notification">
|
||||
<PreferenceScreen
|
||||
android:key="pref_category_watchxplus_ringing"
|
||||
android:title="@string/pref_screen_notification_profile_incoming_call">
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_screen_notification_profile_incoming_call"/>
|
||||
<EditTextPreference
|
||||
android:defaultValue="0"
|
||||
android:key="watchxplus_repeat"
|
||||
android:summary="@string/pref_wxp_title_repeat_on_call_summary"
|
||||
android:title="@string/pref_wxp_title_repeat_on_call"/>
|
||||
<CheckBoxPreference
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:defaultValue="false"
|
||||
android:key="watchxplus_continious"
|
||||
android:title="@string/prefs_wxp_continious" />
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen
|
||||
android:key="pref_category_watchxplus_miss"
|
||||
android:title="@string/pref_screen_notification_profile_missed_call">
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_screen_notification_profile_missed_call"/>
|
||||
<CheckBoxPreference
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:defaultValue="false"
|
||||
android:key="watchxplus_missed"
|
||||
android:title="@string/pref_wxp_enable_misscall" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="0"
|
||||
android:key="watchxplus_repeat_missedcall"
|
||||
android:dependency="watchxplus_missed"
|
||||
android:summary="@string/pref_wxp_title_repeat_on_misscall_summary"
|
||||
android:title="@string/pref_wxp_title_repeat_on_misscall"/>
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen
|
||||
android:key="pref_category_watchxplus_callhandling"
|
||||
android:title="@string/pref_header_wxp_notification_callhandling">
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_header_wxp_notification_callhandling"/>
|
||||
<CheckBoxPreference
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:defaultValue="false"
|
||||
android:key="watchxplus_button_reject"
|
||||
android:summary="@string/pref_wxp_title_reject_summary"
|
||||
android:title="@string/prefs_wxp_reject" />
|
||||
<CheckBoxPreference
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:defaultValue="false"
|
||||
android:key="watchxplus_shake_reject"
|
||||
android:summary="@string/pref_wxp_title_shake_reject_summary"
|
||||
android:title="@string/prefs_wxp_shake_reject" />
|
||||
</PreferenceScreen>
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_category_watchxplus_settings"
|
||||
android:title="@string/pref_header_wxp_settings">
|
||||
<ListPreference
|
||||
android:defaultValue="0"
|
||||
android:title="@string/wxp_power_mode_title"
|
||||
android:entries="@array/wxp_mode"
|
||||
android:entryValues="@array/wxp_mode_values"
|
||||
android:key="pref_wxp_power"
|
||||
android:summary="%s" />
|
||||
<ListPreference
|
||||
android:defaultValue="1"
|
||||
android:title="@string/pref_title_language"
|
||||
android:entries="@array/wxp_language"
|
||||
android:entryValues="@array/wxp_language_values"
|
||||
android:key="pref_wxp_language"
|
||||
android:summary="%s" />
|
||||
<PreferenceScreen
|
||||
android:key="pref_category_watchxplus_longsit_settings"
|
||||
android:title="@string/pref_header_wxp_longsit">
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_header_wxp_longsit"/>
|
||||
<EditTextPreference
|
||||
android:defaultValue="60"
|
||||
android:key="pref_watchxplus_longsit_period"
|
||||
android:summary="@string/pref_wxp_longsit_period_summary"
|
||||
android:title="@string/pref_wxp_title_longsit"/>
|
||||
<CheckBoxPreference
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:defaultValue="false"
|
||||
android:key="pref_watchxplus_longsit_switch"
|
||||
android:summary="@string/pref_wxp_longsit_switch_summary"
|
||||
android:title="@string/prefs_wxp_longsit_switch" />
|
||||
</PreferenceScreen>
|
||||
<CheckBoxPreference
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:defaultValue="false"
|
||||
android:key="pref_wxp_force_time"
|
||||
android:summary="@string/pref_wxp_title_force_time_sum"
|
||||
android:title="@string/pref_wxp_title_force_time" />
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="pref_category_watchxplus_calibration"
|
||||
android:title="@string/pref_header_wxp_calibration">
|
||||
|
||||
<EditTextPreference
|
||||
android:defaultValue="200"
|
||||
android:key="pref_watchxplus_altitude"
|
||||
android:title="@string/pref_wxp_title_altitude"/>
|
||||
|
||||
<PreferenceScreen
|
||||
android:key="wxp_bp_calibration"
|
||||
android:title="@string/wxp_bp_calibration_prefs">
|
||||
<PreferenceCategory
|
||||
android:title="@string/wxp_bp_calibration_prefs"/>
|
||||
<EditTextPreference
|
||||
android:inputType="number"
|
||||
android:key="pref_wxp_bp_calibration_low"
|
||||
android:defaultValue="80"
|
||||
android:title="@string/pref_wxp_bp_calibration_low" />
|
||||
<EditTextPreference
|
||||
android:inputType="number"
|
||||
android:key="pref_wxp_bp_calibration_high"
|
||||
android:defaultValue="130"
|
||||
android:title="@string/pref_wxp_bp_calibration_high" />
|
||||
<ListPreference
|
||||
android:defaultValue="1"
|
||||
android:title="@string/prefs_wxp_button_bp_calibration"
|
||||
android:entries="@array/wxp_bp_cal"
|
||||
android:entryValues="@array/wxp_bp_cal_values"
|
||||
android:key="wxp_button_BP_calibration_list"
|
||||
android:summary="@string/prefs_wxp_button_bp_calibration_sum" />
|
||||
</PreferenceScreen>
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
Loading…
Reference in New Issue
Block a user