mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-06-08 22:28:20 +02:00
Add events forwarding for HUAMI Bip, MB3 (#1980)
Remove unneeded function call Re-done to simplify Add media actions Rename function to make meaning clearer Add events forwarding for HUAMI Bip, MB3 Co-authored-by: vanous <petr@linuks.cz> Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/1980
This commit is contained in:
parent
19ac94e138
commit
20faa23843
|
@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory;
|
|||
import java.util.Objects;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.makibeshr3.MakibesHR3Constants;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst;
|
||||
|
@ -68,6 +69,14 @@ import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF
|
|||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DISPLAY_ON_LIFT_START;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_EXPOSE_HR_THIRDPARTY;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_SHORTCUTS;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_FELL_SLEEP_SELECTION;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_SELECTION_OFF;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_SELECTION_BROADCAST;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_FELL_SLEEP_BROADCAST;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_START_NON_WEAR_BROADCAST;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_START_NON_WEAR_SELECTION;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_WOKE_UP_BROADCAST;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_WOKE_UP_SELECTION;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_DO_NOT_DISTURB;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_DO_NOT_DISTURB_END;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_DO_NOT_DISTURB_OFF;
|
||||
|
@ -430,6 +439,94 @@ public class DeviceSpecificSettingsFragment extends PreferenceFragmentCompat {
|
|||
setInputTypeFor(MiBandConst.PREF_MIBAND_DEVICE_TIME_OFFSET_HOURS, InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
|
||||
setInputTypeFor(MakibesHR3Constants.PREF_FIND_PHONE_DURATION, InputType.TYPE_CLASS_NUMBER);
|
||||
setInputTypeFor(DeviceSettingsPreferenceConst.PREF_RESERVER_ALARMS_CALENDAR, InputType.TYPE_CLASS_NUMBER);
|
||||
|
||||
String deviceActionsFellSleepSelection = prefs.getString(PREF_DEVICE_ACTION_FELL_SLEEP_SELECTION, PREF_DEVICE_ACTION_SELECTION_OFF);
|
||||
final String deviceActionsFellSleepBroadcastValue = prefs.getString(PREF_DEVICE_ACTION_FELL_SLEEP_BROADCAST,
|
||||
this.getContext().getString(R.string.prefs_events_forwarding_fellsleep_broadcast_default_value));
|
||||
|
||||
final Preference deviceActionsFellSleep = findPreference(PREF_DEVICE_ACTION_FELL_SLEEP_SELECTION);
|
||||
final Preference deviceActionsFellSleepBroadcast = findPreference(PREF_DEVICE_ACTION_FELL_SLEEP_BROADCAST);
|
||||
boolean deviceActionsFellSleepSelectionBroadcast = deviceActionsFellSleepSelection.equals(PREF_DEVICE_ACTION_SELECTION_BROADCAST);
|
||||
if (deviceActionsFellSleep != null) {
|
||||
deviceActionsFellSleep.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
||||
final boolean broadcast = PREF_DEVICE_ACTION_SELECTION_BROADCAST.equals(newVal.toString());
|
||||
Objects.requireNonNull(deviceActionsFellSleepBroadcast).setEnabled(broadcast);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (deviceActionsFellSleepBroadcast != null) {
|
||||
deviceActionsFellSleepBroadcast.setSummary(deviceActionsFellSleepBroadcastValue);
|
||||
deviceActionsFellSleepBroadcast.setEnabled(deviceActionsFellSleepSelectionBroadcast);
|
||||
deviceActionsFellSleepBroadcast.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
||||
deviceActionsFellSleepBroadcast.setSummary(newVal.toString());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
String deviceActionsWokeUpSelection = prefs.getString(PREF_DEVICE_ACTION_WOKE_UP_SELECTION, PREF_DEVICE_ACTION_SELECTION_OFF);
|
||||
final String deviceActionsWokeUpBroadcastValue = prefs.getString(PREF_DEVICE_ACTION_WOKE_UP_BROADCAST,
|
||||
this.getContext().getString(R.string.prefs_events_forwarding_wokeup_broadcast_default_value));
|
||||
|
||||
final Preference deviceActionsWokeUp = findPreference(PREF_DEVICE_ACTION_WOKE_UP_SELECTION);
|
||||
final Preference deviceActionsWokeUpBroadcast = findPreference(PREF_DEVICE_ACTION_WOKE_UP_BROADCAST);
|
||||
boolean deviceActionsWokeUpSelectionBroadcast = deviceActionsWokeUpSelection.equals(PREF_DEVICE_ACTION_SELECTION_BROADCAST);
|
||||
if (deviceActionsWokeUp != null) {
|
||||
deviceActionsWokeUp.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
||||
final boolean broadcast = PREF_DEVICE_ACTION_SELECTION_BROADCAST.equals(newVal.toString());
|
||||
Objects.requireNonNull(deviceActionsWokeUpBroadcast).setEnabled(broadcast);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (deviceActionsWokeUpBroadcast != null) {
|
||||
deviceActionsWokeUpBroadcast.setSummary(deviceActionsWokeUpBroadcastValue);
|
||||
deviceActionsWokeUpBroadcast.setEnabled(deviceActionsWokeUpSelectionBroadcast);
|
||||
deviceActionsWokeUpBroadcast.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
||||
deviceActionsWokeUpBroadcast.setSummary(newVal.toString());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
String deviceActionsStartNonWearSelection = prefs.getString(PREF_DEVICE_ACTION_START_NON_WEAR_SELECTION, PREF_DEVICE_ACTION_SELECTION_OFF);
|
||||
final String deviceActionsStartNonWearBroadcastValue = prefs.getString(PREF_DEVICE_ACTION_START_NON_WEAR_BROADCAST,
|
||||
this.getContext().getString(R.string.prefs_events_forwarding_startnonwear_broadcast_default_value));
|
||||
|
||||
final Preference deviceActionsStartNonWear = findPreference(PREF_DEVICE_ACTION_START_NON_WEAR_SELECTION);
|
||||
final Preference deviceActionsStartNonWearBroadcast = findPreference(PREF_DEVICE_ACTION_START_NON_WEAR_BROADCAST);
|
||||
boolean deviceActionsStartNonWearSelectionBroadcast = deviceActionsStartNonWearSelection.equals(PREF_DEVICE_ACTION_SELECTION_BROADCAST);
|
||||
if (deviceActionsStartNonWear != null) {
|
||||
deviceActionsStartNonWear.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
||||
final boolean broadcast = PREF_DEVICE_ACTION_SELECTION_BROADCAST.equals(newVal.toString());
|
||||
Objects.requireNonNull(deviceActionsStartNonWearBroadcast).setEnabled(broadcast);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (deviceActionsStartNonWearBroadcast != null) {
|
||||
deviceActionsStartNonWearBroadcast.setSummary(deviceActionsStartNonWearBroadcastValue);
|
||||
deviceActionsStartNonWearBroadcast.setEnabled(deviceActionsStartNonWearSelectionBroadcast);
|
||||
deviceActionsStartNonWearBroadcast.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newVal) {
|
||||
deviceActionsStartNonWearBroadcast.setSummary(newVal.toString());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static DeviceSpecificSettingsFragment newInstance(String settingsFileSuffix, @NonNull int[] supportedSettings) {
|
||||
|
|
|
@ -71,6 +71,16 @@ public class HuamiConst {
|
|||
public static final String PREF_BUTTON_ACTION_BROADCAST_DELAY = "button_action_broadcast_delay";
|
||||
public static final String PREF_BUTTON_ACTION_BROADCAST = "button_action_broadcast";
|
||||
|
||||
public static final String PREF_DEVICE_ACTION_SELECTION_OFF = "UNKNOWN";
|
||||
public static final String PREF_DEVICE_ACTION_SELECTION_BROADCAST = "BROADCAST";
|
||||
public static final String PREF_DEVICE_ACTION_FELL_SLEEP_SELECTION = "events_forwarding_fellsleep_action_selection";
|
||||
public static final String PREF_DEVICE_ACTION_FELL_SLEEP_BROADCAST = "prefs_events_forwarding_fellsleep_broadcast";
|
||||
public static final String PREF_DEVICE_ACTION_WOKE_UP_SELECTION = "events_forwarding_wokeup_action_selection";
|
||||
public static final String PREF_DEVICE_ACTION_WOKE_UP_BROADCAST = "prefs_events_forwarding_wokeup_broadcast";
|
||||
public static final String PREF_DEVICE_ACTION_START_NON_WEAR_SELECTION = "events_forwarding_startnonwear_action_selection";
|
||||
public static final String PREF_DEVICE_ACTION_START_NON_WEAR_BROADCAST = "prefs_events_forwarding_startnonwear_broadcast";
|
||||
|
||||
|
||||
public static int toActivityKind(int rawType) {
|
||||
switch (rawType) {
|
||||
case TYPE_DEEP_SLEEP:
|
||||
|
|
|
@ -89,6 +89,7 @@ public class AmazfitBipCoordinator extends HuamiCoordinator {
|
|||
R.xml.devicesettings_sync_calendar,
|
||||
R.xml.devicesettings_expose_hr_thirdparty,
|
||||
R.xml.devicesettings_buttonactions_with_longpress,
|
||||
R.xml.devicesettings_device_actions,
|
||||
R.xml.devicesettings_pairingkey
|
||||
};
|
||||
}
|
||||
|
|
|
@ -112,6 +112,7 @@ public class MiBand3Coordinator extends HuamiCoordinator {
|
|||
R.xml.devicesettings_swipeunlock,
|
||||
R.xml.devicesettings_sync_calendar,
|
||||
R.xml.devicesettings_expose_hr_thirdparty,
|
||||
R.xml.devicesettings_device_actions,
|
||||
R.xml.devicesettings_pairingkey
|
||||
};
|
||||
}
|
||||
|
|
|
@ -144,6 +144,12 @@ import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.Dev
|
|||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_SYNC_CALENDAR;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_TIMEFORMAT;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_WEARLOCATION;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_FELL_SLEEP_BROADCAST;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_FELL_SLEEP_SELECTION;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_START_NON_WEAR_BROADCAST;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_START_NON_WEAR_SELECTION;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_WOKE_UP_BROADCAST;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_WOKE_UP_SELECTION;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_COUNT;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.DEFAULT_VALUE_VIBRATION_PROFILE;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.VIBRATION_COUNT;
|
||||
|
@ -151,7 +157,8 @@ import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.VI
|
|||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.getNotificationPrefIntValue;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.getNotificationPrefStringValue;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.service.btle.GattCharacteristic.UUID_CHARACTERISTIC_ALERT_LEVEL;
|
||||
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_SELECTION_BROADCAST;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DEVICE_ACTION_SELECTION_OFF;
|
||||
|
||||
public class HuamiSupport extends AbstractBTLEDeviceSupport {
|
||||
|
||||
|
@ -1168,8 +1175,27 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport {
|
|||
currentButtonPressTime = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
private void handleDeviceAction(String deviceAction, String message) {
|
||||
if (deviceAction.equals(PREF_DEVICE_ACTION_SELECTION_OFF)) {
|
||||
return;
|
||||
}
|
||||
if (deviceAction.equals(PREF_DEVICE_ACTION_SELECTION_BROADCAST)) {
|
||||
sendSystemBroadcast(message);
|
||||
}else {
|
||||
handleMediaButton(deviceAction);
|
||||
}
|
||||
}
|
||||
|
||||
private void sendSystemBroadcast(String message){
|
||||
if (message !=null) {
|
||||
Intent in = new Intent();
|
||||
in.setAction(message);
|
||||
LOG.info("Sending broadcast " + message);
|
||||
this.getContext().getApplicationContext().sendBroadcast(in);
|
||||
}
|
||||
}
|
||||
private void handleMediaButton(String MediaAction) {
|
||||
if (MediaAction.equals("UNKNOWN")) {
|
||||
if (MediaAction.equals(PREF_DEVICE_ACTION_SELECTION_OFF)) {
|
||||
return;
|
||||
}
|
||||
GBDeviceEventMusicControl deviceEventMusicControl = new GBDeviceEventMusicControl();
|
||||
|
@ -1204,6 +1230,7 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport {
|
|||
break;
|
||||
case HuamiDeviceEvent.START_NONWEAR:
|
||||
LOG.info("non-wear start detected");
|
||||
processDeviceEvent(HuamiDeviceEvent.START_NONWEAR);
|
||||
break;
|
||||
case HuamiDeviceEvent.ALARM_TOGGLED:
|
||||
LOG.info("An alarm was toggled");
|
||||
|
@ -1213,9 +1240,11 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport {
|
|||
break;
|
||||
case HuamiDeviceEvent.FELL_ASLEEP:
|
||||
LOG.info("Fell asleep");
|
||||
processDeviceEvent(HuamiDeviceEvent.FELL_ASLEEP);
|
||||
break;
|
||||
case HuamiDeviceEvent.WOKE_UP:
|
||||
LOG.info("Woke up");
|
||||
processDeviceEvent(HuamiDeviceEvent.WOKE_UP);
|
||||
break;
|
||||
case HuamiDeviceEvent.STEPSGOAL_REACHED:
|
||||
LOG.info("Steps goal reached");
|
||||
|
@ -1319,6 +1348,37 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport {
|
|||
}
|
||||
}
|
||||
|
||||
private void processDeviceEvent(int event){
|
||||
LOG.debug("Handling device event: " + event);
|
||||
Prefs prefs = new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()));
|
||||
String deviceActionBroadcastMessage=null;
|
||||
|
||||
switch (event) {
|
||||
case HuamiDeviceEvent.WOKE_UP:
|
||||
String wakeupAction = prefs.getString(PREF_DEVICE_ACTION_WOKE_UP_SELECTION,PREF_DEVICE_ACTION_SELECTION_OFF);
|
||||
if (wakeupAction.equals(PREF_DEVICE_ACTION_SELECTION_OFF)) return;
|
||||
deviceActionBroadcastMessage= prefs.getString(PREF_DEVICE_ACTION_WOKE_UP_BROADCAST,
|
||||
this.getContext().getString(R.string.prefs_events_forwarding_wokeup_broadcast_default_value));
|
||||
handleDeviceAction(wakeupAction, deviceActionBroadcastMessage);
|
||||
break;
|
||||
case HuamiDeviceEvent.FELL_ASLEEP:
|
||||
String fellsleepAction = prefs.getString(PREF_DEVICE_ACTION_FELL_SLEEP_SELECTION,PREF_DEVICE_ACTION_SELECTION_OFF);
|
||||
if (fellsleepAction.equals(PREF_DEVICE_ACTION_SELECTION_OFF)) return;
|
||||
deviceActionBroadcastMessage= prefs.getString(PREF_DEVICE_ACTION_FELL_SLEEP_BROADCAST,
|
||||
this.getContext().getString(R.string.prefs_events_forwarding_fellsleep_broadcast_default_value));
|
||||
handleDeviceAction(fellsleepAction, deviceActionBroadcastMessage);
|
||||
break;
|
||||
case HuamiDeviceEvent.START_NONWEAR:
|
||||
String nonwearAction = prefs.getString(PREF_DEVICE_ACTION_START_NON_WEAR_SELECTION,PREF_DEVICE_ACTION_SELECTION_OFF);
|
||||
if (nonwearAction.equals(PREF_DEVICE_ACTION_SELECTION_OFF)) return;
|
||||
deviceActionBroadcastMessage= prefs.getString(PREF_DEVICE_ACTION_START_NON_WEAR_BROADCAST,
|
||||
this.getContext().getString(R.string.prefs_events_forwarding_startnonwear_broadcast_default_value));
|
||||
handleDeviceAction(nonwearAction, deviceActionBroadcastMessage);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void handleLongButtonEvent(){
|
||||
Prefs prefs = new Prefs(GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()));
|
||||
|
||||
|
|
|
@ -877,6 +877,7 @@
|
|||
<item>@string/pref_media_volumedown</item>
|
||||
<item>@string/pref_media_forward</item>
|
||||
<item>@string/pref_media_rewind</item>
|
||||
<item>@string/pref_device_action_broadcast</item>
|
||||
</string-array>
|
||||
|
||||
<string name="pref_button_action_disabled">Disabled</string>
|
||||
|
@ -889,6 +890,8 @@
|
|||
<string name="pref_media_volumedown">Volume Down</string>
|
||||
<string name="pref_media_forward">Skip forward</string>
|
||||
<string name="pref_media_rewind">Skip back</string>
|
||||
<string name="pref_device_action_broadcast">Send Broadcast</string>
|
||||
|
||||
|
||||
<string-array name="button_action_values">
|
||||
<item>@string/pref_button_action_disabled_value</item>
|
||||
|
@ -901,6 +904,8 @@
|
|||
<item>@string/pref_media_volumedown_value</item>
|
||||
<item>@string/pref_media_forward_value</item>
|
||||
<item>@string/pref_media_rewind_value</item>
|
||||
<item>@string/pref_device_action_broadcast_value</item>
|
||||
|
||||
|
||||
</string-array>
|
||||
|
||||
|
@ -914,7 +919,23 @@
|
|||
<string name="pref_media_volumedown_value" translatable="false">VOLUMEDOWN</string>
|
||||
<string name="pref_media_forward_value" translatable="false">FORWARD</string>
|
||||
<string name="pref_media_rewind_value" translatable="false">REWIND</string>
|
||||
<string name="pref_device_action_broadcast_value" translatable="false">BROADCAST</string>
|
||||
|
||||
<string-array name="device_action_options">
|
||||
<item>@string/pref_button_action_disabled</item>
|
||||
<item>@string/pref_media_play</item>
|
||||
<item>@string/pref_media_pause</item>
|
||||
<item>@string/pref_media_playpause</item>
|
||||
<item>@string/pref_device_action_broadcast</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="device_action_values">
|
||||
<item>@string/pref_button_action_disabled_value</item>
|
||||
<item>@string/pref_media_play_value</item>
|
||||
<item>@string/pref_media_pause_value</item>
|
||||
<item>@string/pref_media_playpause_value</item>
|
||||
<item>@string/pref_device_action_broadcast_value</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="pref_hybridhr_buttonfunctions">
|
||||
<item name="notificationsPanelApp">@string/menuitem_notifications</item>
|
||||
|
|
|
@ -960,6 +960,19 @@
|
|||
<string name="activity_detail_end_label">End:</string>
|
||||
<string name="activity_detail_duration_label">Duration:</string>
|
||||
<string name="activity_detail_show_gps_label">Show GPS Track</string>
|
||||
<!-- Device Actions Preferences -->
|
||||
<string name="prefs_events_forwarding_summary">Use device events to trigger actions and Android broadcasts</string>
|
||||
<string name="prefs_events_forwarding_title">Device actions</string>
|
||||
<string name="prefs_events_forwarding_fellsleep">On Fall Asleep</string>
|
||||
<string name="prefs_events_forwarding_fellsleep_broadcast_default_value" translatable="false">nodomain.freeyourgadget.gadgetbridge.FellAsleep</string>
|
||||
<string name="prefs_events_forwarding_wokeup">On Wake Up</string>
|
||||
<string name="prefs_events_forwarding_wokeup_broadcast_default_value" translatable="false">nodomain.freeyourgadget.gadgetbridge.WokeUp</string>
|
||||
<string name="prefs_events_forwarding_startnonwear">On Not Wearing</string>
|
||||
<string name="prefs_events_forwarding_startnonwear_broadcast_default_value" translatable="false">nodomain.freeyourgadget.gadgetbridge.StartNonWear</string>
|
||||
<string name="prefs_events_forwarding_broadcast_title">Broadcast message</string>
|
||||
<string name="prefs_events_forwarding_action_title">Run action</string>
|
||||
|
||||
|
||||
<plurals name="widget_alarm_target_hours">
|
||||
<item quantity="one">%d hour</item>
|
||||
<item quantity="two">%d hours</item>
|
||||
|
@ -967,4 +980,4 @@
|
|||
<item quantity="many">%d hours</item>
|
||||
<item quantity="other">%d hours</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
</resources>
|
||||
|
|
56
app/src/main/res/xml/devicesettings_device_actions.xml
Normal file
56
app/src/main/res/xml/devicesettings_device_actions.xml
Normal file
|
@ -0,0 +1,56 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceScreen
|
||||
android:key="screen_events_forwarding"
|
||||
android:persistent="false"
|
||||
android:summary="@string/prefs_events_forwarding_summary"
|
||||
android:title="@string/prefs_events_forwarding_title">
|
||||
|
||||
<PreferenceCategory android:title="@string/prefs_events_forwarding_fellsleep">
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/device_action_options"
|
||||
android:entryValues="@array/device_action_values"
|
||||
android:key="events_forwarding_fellsleep_action_selection"
|
||||
android:summary="%s"
|
||||
android:defaultValue="@string/pref_button_action_disabled_value"
|
||||
android:title="@string/prefs_events_forwarding_action_title" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="@string/prefs_events_forwarding_fellsleep_broadcast_default_value"
|
||||
android:key="prefs_events_forwarding_fellsleep_broadcast"
|
||||
android:title="@string/prefs_events_forwarding_broadcast_title" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/prefs_events_forwarding_wokeup">
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/device_action_options"
|
||||
android:entryValues="@array/device_action_values"
|
||||
android:key="events_forwarding_wokeup_action_selection"
|
||||
android:summary="%s"
|
||||
android:defaultValue="@string/pref_button_action_disabled_value"
|
||||
android:title="@string/prefs_events_forwarding_action_title" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="@string/prefs_events_forwarding_wokeup_broadcast_default_value"
|
||||
android:key="prefs_events_forwarding_wokeup_broadcast"
|
||||
android:title="@string/prefs_events_forwarding_broadcast_title" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/prefs_events_forwarding_startnonwear">
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/device_action_options"
|
||||
android:entryValues="@array/device_action_values"
|
||||
android:key="events_forwarding_startnonwear_action_selection"
|
||||
android:summary="%s"
|
||||
android:defaultValue="@string/pref_button_action_disabled_value"
|
||||
android:title="@string/prefs_events_forwarding_action_title" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="@string/prefs_events_forwarding_startnonwear_broadcast_default_value"
|
||||
android:key="prefs_events_forwarding_startnonwear_broadcast"
|
||||
android:title="@string/prefs_events_forwarding_broadcast_title" />
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
</PreferenceScreen>
|
||||
</androidx.preference.PreferenceScreen>
|
Loading…
Reference in New Issue
Block a user