mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Redmi Buds 8 Active: Add device support
This commit is contained in:
+12
@@ -475,6 +475,18 @@ public class DeviceSettingsPreferenceConst {
|
||||
public static final String PREF_REDMI_BUDS_6_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT="pref_redmi_buds_6_active_control_long_tap_mode_right";
|
||||
public static final String PREF_REDMI_BUDS_6_ACTIVE_EQUALIZER_PRESET="pref_redmi_buds_6_active_equalizer_preset";
|
||||
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_CONTROL_SINGLE_TAP_LEFT="pref_redmi_buds_8_active_control_single_tap_left";
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_CONTROL_SINGLE_TAP_RIGHT="pref_redmi_buds_8_active_control_single_tap_right";
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_CONTROL_DOUBLE_TAP_LEFT="pref_redmi_buds_8_active_control_double_tap_left";
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_CONTROL_DOUBLE_TAP_RIGHT="pref_redmi_buds_8_active_control_double_tap_right";
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_CONTROL_TRIPLE_TAP_LEFT="pref_redmi_buds_8_active_control_triple_tap_left";
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_CONTROL_TRIPLE_TAP_RIGHT="pref_redmi_buds_8_active_control_triple_tap_right";
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_LEFT="pref_redmi_buds_8_active_control_long_tap_mode_left";
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT="pref_redmi_buds_8_active_control_long_tap_mode_right";
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_SETTINGS_LEFT ="pref_redmi_buds_8_active_control_long_tap_settings_left";
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_SETTINGS_RIGHT ="pref_redmi_buds_8_active_control_long_tap_settings_right";
|
||||
public static final String PREF_REDMI_BUDS_8_ACTIVE_EQUALIZER_PRESET="pref_redmi_buds_8_active_equalizer_preset";
|
||||
|
||||
public static final String PREF_SONY_AUDIO_CODEC = "pref_sony_audio_codec";
|
||||
public static final String PREF_SONY_PROTOCOL_VERSION = "pref_protocol_version";
|
||||
public static final String PREF_SONY_ACTUAL_PROTOCOL_VERSION = "pref_actual_protocol_version";
|
||||
|
||||
+12
-2
@@ -813,10 +813,20 @@ public class DeviceSpecificSettingsFragment extends AbstractPreferenceFragment i
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_6_ACTIVE_CONTROL_DOUBLE_TAP_RIGHT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_6_ACTIVE_CONTROL_TRIPLE_TAP_LEFT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_6_ACTIVE_CONTROL_TRIPLE_TAP_RIGHT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_6_ACTIVE_CONTROL_LONG_TAP_MODE_LEFT );
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_6_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT );
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_6_ACTIVE_CONTROL_LONG_TAP_MODE_LEFT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_6_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_6_ACTIVE_EQUALIZER_PRESET);
|
||||
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_SINGLE_TAP_LEFT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_SINGLE_TAP_RIGHT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_DOUBLE_TAP_LEFT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_DOUBLE_TAP_RIGHT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_TRIPLE_TAP_LEFT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_TRIPLE_TAP_RIGHT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_LEFT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT);
|
||||
addPreferenceHandlerFor(PREF_REDMI_BUDS_8_ACTIVE_EQUALIZER_PRESET);
|
||||
|
||||
addPreferenceHandlerFor(PREF_SONY_AMBIENT_SOUND_CONTROL);
|
||||
addPreferenceHandlerFor(PREF_SONY_AMBIENT_SOUND_CONTROL_BUTTON_MODE);
|
||||
addPreferenceHandlerFor(PREF_SONY_FOCUS_VOICE);
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.redmibuds;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettings;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsCustomizer;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsScreen;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.redmibuds.RedmiBuds8ActiveDeviceSupport;
|
||||
|
||||
public class RedmiBuds8ActiveCoordinator extends AbstractRedmiBudsCoordinator {
|
||||
|
||||
@Override
|
||||
public int getDeviceNameResource() {
|
||||
return R.string.devicetype_redmi_buds_8_active;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Pattern getSupportedDeviceName() {
|
||||
return Pattern.compile("REDMI Buds 8 Active");
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Class<? extends DeviceSupport> getDeviceSupportClass(final GBDevice device) {
|
||||
return RedmiBuds8ActiveDeviceSupport.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeviceSpecificSettings getDeviceSpecificSettings(final GBDevice device) {
|
||||
final DeviceSpecificSettings deviceSpecificSettings = new DeviceSpecificSettings();
|
||||
deviceSpecificSettings.addRootScreen(R.xml.devicesettings_redmibuds8active_sound);
|
||||
deviceSpecificSettings.addRootScreen(R.xml.devicesettings_redmibuds8active_gestures);
|
||||
deviceSpecificSettings.addSubScreen(DeviceSpecificSettingsScreen.CALLS_AND_NOTIFICATIONS);
|
||||
return deviceSpecificSettings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeviceSpecificSettingsCustomizer getDeviceSpecificSettingsCustomizer(final GBDevice device) {
|
||||
return new RedmiBuds8ActiveSettingsCustomizer(device);
|
||||
}
|
||||
}
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.redmibuds;
|
||||
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsHandler;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
|
||||
|
||||
public class RedmiBuds8ActiveSettingsCustomizer extends RedmiBudsSettingsCustomizer {
|
||||
|
||||
public RedmiBuds8ActiveSettingsCustomizer(final GBDevice device) {
|
||||
super(device);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void customizeSettings(DeviceSpecificSettingsHandler handler, Prefs prefs, String rootKey) {
|
||||
|
||||
final ListPreference longPressLeft = handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_LEFT);
|
||||
final ListPreference longPressRight = handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT);
|
||||
|
||||
final Preference longPressLeftSettings = handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_SETTINGS_LEFT);
|
||||
final Preference longPressRightSettings = handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_SETTINGS_RIGHT);
|
||||
|
||||
final ListPreference equalizerPreset = handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_EQUALIZER_PRESET);
|
||||
|
||||
if (longPressLeft != null) {
|
||||
final Preference.OnPreferenceChangeListener longPressLeftButtonListener = (preference, newVal) -> {
|
||||
String mode = newVal.toString();
|
||||
if (longPressLeftSettings != null) {
|
||||
longPressLeftSettings.setVisible(mode.equals("6"));
|
||||
}
|
||||
return true;
|
||||
};
|
||||
longPressLeftButtonListener.onPreferenceChange(longPressLeft, prefs.getString(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_LEFT, "6"));
|
||||
handler.addPreferenceHandlerFor(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_LEFT, longPressLeftButtonListener);
|
||||
}
|
||||
if (longPressRight != null) {
|
||||
final Preference.OnPreferenceChangeListener longPressRightButtonListener = (preference, newVal) -> {
|
||||
String mode = newVal.toString();
|
||||
if (longPressRightSettings != null) {
|
||||
longPressRightSettings.setVisible(mode.equals("6"));
|
||||
}
|
||||
return true;
|
||||
};
|
||||
longPressRightButtonListener.onPreferenceChange(longPressRight, prefs.getString(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT, "6"));
|
||||
handler.addPreferenceHandlerFor(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT, longPressRightButtonListener);
|
||||
}
|
||||
|
||||
if (equalizerPreset != null) {
|
||||
|
||||
final Preference.OnPreferenceChangeListener equalizerPresetListener = (preference, newVal) -> {
|
||||
|
||||
final List<Preference> prefsToDisable = Arrays.asList(
|
||||
handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_62),
|
||||
handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_125),
|
||||
handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_250),
|
||||
handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_500),
|
||||
handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_1k),
|
||||
handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_2k),
|
||||
handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_4k),
|
||||
handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_8k),
|
||||
handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_12k),
|
||||
handler.findPreference(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_16k)
|
||||
);
|
||||
|
||||
String mode = newVal.toString();
|
||||
for (Preference pref : prefsToDisable) {
|
||||
if (pref != null) {
|
||||
pref.setEnabled(mode.equals("10"));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
equalizerPresetListener.onPreferenceChange(equalizerPreset, prefs.getString(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_EQUALIZER_PRESET, "0"));
|
||||
handler.addPreferenceHandlerFor(DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_EQUALIZER_PRESET, equalizerPresetListener);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -378,6 +378,7 @@ import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds4ActiveCo
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds5ProCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds6ActiveCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds6ProCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.RedmiBuds8ActiveCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.roidmi.Roidmi1Coordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.roidmi.Roidmi3Coordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.sbm_67.SanitasSBM67Coordinator;
|
||||
@@ -530,6 +531,7 @@ public enum DeviceType {
|
||||
REDMIBUDS5PRO(RedmiBuds5ProCoordinator.class),
|
||||
REDMIBUDS6ACTIVE(RedmiBuds6ActiveCoordinator.class),
|
||||
REDMIBUDS6PRO(RedmiBuds6ProCoordinator.class),
|
||||
REDMIBUDS8ACTIVE(RedmiBuds8ActiveCoordinator.class),
|
||||
REDMIWATCH3ACTIVE(RedmiWatch3ActiveCoordinator.class),
|
||||
REDMIWATCH3(RedmiWatch3Coordinator.class),
|
||||
REDMISMARTBAND2(RedmiSmartBand2Coordinator.class),
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.redmibuds;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.serial.GBDeviceIoThread;
|
||||
|
||||
public class RedmiBuds8ActiveDeviceSupport extends RedmiBudsDeviceSupport {
|
||||
@Override
|
||||
protected RedmiBuds8ActiveProtocol createDeviceProtocol() {
|
||||
return new RedmiBuds8ActiveProtocol(getDevice());
|
||||
}
|
||||
}
|
||||
+158
@@ -0,0 +1,158 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.redmibuds;
|
||||
|
||||
// EQ_PRESET
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_EQUALIZER_PRESET;
|
||||
|
||||
// EQ_CURVE
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_62;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_125;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_250;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_500;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_1k;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_2k;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_4k;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_8k;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_12k;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_16k;
|
||||
|
||||
// DOUBLE_CONNECTION
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_DOUBLE_CONNECTION;
|
||||
|
||||
// ADAPTIVE_SOUND
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_5_PRO_ADAPTIVE_SOUND;
|
||||
|
||||
// SINGLE_TAP
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_SINGLE_TAP_LEFT;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_SINGLE_TAP_RIGHT;
|
||||
// DOUBLE_TAP
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_DOUBLE_TAP_LEFT;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_DOUBLE_TAP_RIGHT;
|
||||
// TRIPLE_TAP
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_TRIPLE_TAP_LEFT;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_TRIPLE_TAP_RIGHT;
|
||||
// LONG_TAP
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_LEFT;
|
||||
import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT;
|
||||
|
||||
import static nodomain.freeyourgadget.gadgetbridge.util.GB.hexdump;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.SharedPreferences.Editor;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.prefs.Configuration;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.prefs.Gestures.InteractionType;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.prefs.Gestures.Position;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.redmibuds.prefs.Configuration.Config;
|
||||
|
||||
public class RedmiBuds8ActiveProtocol extends RedmiBudsProtocol {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(RedmiBuds8ActiveProtocol.class);
|
||||
|
||||
protected RedmiBuds8ActiveProtocol(GBDevice device) {
|
||||
super(device);
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] encodeSendConfiguration(String config) {
|
||||
switch (config) {
|
||||
// GESTURE
|
||||
case PREF_REDMI_BUDS_8_ACTIVE_CONTROL_SINGLE_TAP_LEFT:
|
||||
return encodeSetGesture(config, InteractionType.SINGLE, Position.LEFT);
|
||||
case PREF_REDMI_BUDS_8_ACTIVE_CONTROL_SINGLE_TAP_RIGHT:
|
||||
return encodeSetGesture(config, InteractionType.SINGLE, Position.RIGHT);
|
||||
case PREF_REDMI_BUDS_8_ACTIVE_CONTROL_DOUBLE_TAP_LEFT:
|
||||
return encodeSetGesture(config, InteractionType.DOUBLE, Position.LEFT);
|
||||
case PREF_REDMI_BUDS_8_ACTIVE_CONTROL_DOUBLE_TAP_RIGHT:
|
||||
return encodeSetGesture(config, InteractionType.DOUBLE, Position.RIGHT);
|
||||
case PREF_REDMI_BUDS_8_ACTIVE_CONTROL_TRIPLE_TAP_LEFT:
|
||||
return encodeSetGesture(config, InteractionType.TRIPLE, Position.LEFT);
|
||||
case PREF_REDMI_BUDS_8_ACTIVE_CONTROL_TRIPLE_TAP_RIGHT:
|
||||
return encodeSetGesture(config, InteractionType.TRIPLE, Position.RIGHT);
|
||||
case PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_LEFT:
|
||||
return encodeSetGesture(config, InteractionType.LONG, Position.LEFT);
|
||||
case PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT:
|
||||
return encodeSetGesture(config, InteractionType.LONG, Position.RIGHT);
|
||||
// EQ_PRESET
|
||||
case PREF_REDMI_BUDS_8_ACTIVE_EQUALIZER_PRESET:
|
||||
return encodeSetIntegerConfig(config, Config.EQ_PRESET);
|
||||
// EQ_CURVE
|
||||
case PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_62:
|
||||
case PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_125:
|
||||
case PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_250:
|
||||
case PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_500:
|
||||
case PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_1k:
|
||||
case PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_2k:
|
||||
case PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_4k:
|
||||
case PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_8k:
|
||||
case PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_12k:
|
||||
case PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_16k:
|
||||
return encodeSetCustomEqualizer();
|
||||
// DOUBLE_CONNECTION
|
||||
case PREF_REDMI_BUDS_5_PRO_DOUBLE_CONNECTION:
|
||||
return encodeSetBooleanConfig(config, Config.DOUBLE_CONNECTION);
|
||||
// ADAPTIVE_SOUND
|
||||
case PREF_REDMI_BUDS_5_PRO_ADAPTIVE_SOUND:
|
||||
return encodeSetBooleanConfig(config, Config.ADAPTIVE_SOUND);
|
||||
|
||||
default:
|
||||
LOG.debug("Unsupported config: {}", config);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decodeGetConfig(byte[] configPayload) {
|
||||
if (configPayload.length < 3)
|
||||
return;
|
||||
|
||||
SharedPreferences preferences = getDevicePrefs().getPreferences();
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
Configuration.Config config = Configuration.Config.fromCode(configPayload[2]);
|
||||
|
||||
switch (config) {
|
||||
case GESTURES:
|
||||
// SINGLE_TAP
|
||||
editor.putString(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_SINGLE_TAP_LEFT, Integer.toString(configPayload[4]));
|
||||
editor.putString(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_SINGLE_TAP_RIGHT, Integer.toString(configPayload[5]));
|
||||
// DOUBLE_TAP
|
||||
editor.putString(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_DOUBLE_TAP_LEFT, Integer.toString(configPayload[7]));
|
||||
editor.putString(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_DOUBLE_TAP_RIGHT, Integer.toString(configPayload[8]));
|
||||
// TRIPLE_TAP
|
||||
editor.putString(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_TRIPLE_TAP_LEFT, Integer.toString(configPayload[10]));
|
||||
editor.putString(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_TRIPLE_TAP_RIGHT, Integer.toString(configPayload[11]));
|
||||
// LONG_TAP
|
||||
editor.putString(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_LEFT, Integer.toString(configPayload[13]));
|
||||
editor.putString(PREF_REDMI_BUDS_8_ACTIVE_CONTROL_LONG_TAP_MODE_RIGHT, Integer.toString(configPayload[14]));
|
||||
break;
|
||||
case EQ_PRESET:
|
||||
editor.putString(PREF_REDMI_BUDS_8_ACTIVE_EQUALIZER_PRESET, Integer.toString(configPayload[3]));
|
||||
break;
|
||||
case EQ_CURVE:
|
||||
editor.putString(PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_62, Integer.toString(configPayload[12] & 0xFF));
|
||||
editor.putString(PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_125, Integer.toString(configPayload[15] & 0xFF));
|
||||
editor.putString(PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_250, Integer.toString(configPayload[18] & 0xFF));
|
||||
editor.putString(PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_500, Integer.toString(configPayload[21] & 0xFF));
|
||||
editor.putString(PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_1k, Integer.toString(configPayload[24] & 0xFF));
|
||||
editor.putString(PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_2k, Integer.toString(configPayload[27] & 0xFF));
|
||||
editor.putString(PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_4k, Integer.toString(configPayload[30] & 0xFF));
|
||||
editor.putString(PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_8k, Integer.toString(configPayload[33] & 0xFF));
|
||||
editor.putString(PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_12k, Integer.toString(configPayload[36] & 0xFF));
|
||||
editor.putString(PREF_REDMI_BUDS_5_PRO_EQUALIZER_BAND_16k, Integer.toString(configPayload[39] & 0xFF));
|
||||
break;
|
||||
case DOUBLE_CONNECTION:
|
||||
editor.putBoolean(PREF_REDMI_BUDS_5_PRO_DOUBLE_CONNECTION, configPayload[3] == 0x01);
|
||||
break;
|
||||
case ADAPTIVE_SOUND:
|
||||
editor.putBoolean(PREF_REDMI_BUDS_5_PRO_ADAPTIVE_SOUND, configPayload[3] == 0x01);
|
||||
break;
|
||||
|
||||
default:
|
||||
LOG.debug("Unhandled device update: {}", hexdump(configPayload));
|
||||
}
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4014,6 +4014,68 @@
|
||||
<item>7</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="redmi_buds_8_active_single_button_function_names">
|
||||
<item>@string/none</item>
|
||||
<item>@string/pref_media_playpause</item>
|
||||
<item>@string/pref_media_previous</item>
|
||||
<item>@string/pref_media_next</item>
|
||||
<item>@string/pref_media_volumeup</item>
|
||||
<item>@string/pref_media_volumedown</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="redmi_buds_8_active_single_button_function_values">
|
||||
<item>8</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
<item>5</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="redmi_buds_8_active_button_function_names">
|
||||
<item>@string/pref_media_playpause</item>
|
||||
<item>@string/pref_media_previous</item>
|
||||
<item>@string/pref_media_next</item>
|
||||
<item>@string/pref_media_volumeup</item>
|
||||
<item>@string/pref_media_volumedown</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="redmi_buds_8_active_button_function_values">
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
<item>5</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="redmi_buds_8_active_long_button_mode_names">
|
||||
<item>@string/none</item>
|
||||
<item>@string/pref_title_touch_voice_assistant</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="redmi_buds_8_active_long_button_mode_values">
|
||||
<item>8</item>
|
||||
<item>0</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="redmi_buds_8_active_equalizer_presets_names">
|
||||
<item>@string/redmi_buds_5_pro_anc_balanced</item>
|
||||
<item>@string/redmi_buds_5_pro_equalizer_preset_treble</item>
|
||||
<item>@string/redmi_buds_5_pro_equalizer_preset_bass</item>
|
||||
<item>@string/redmi_buds_5_pro_equalizer_preset_voice</item>
|
||||
<item>@string/redmi_buds_6_active_equalizer_preset_volume</item>
|
||||
<item>@string/redmi_buds_5_pro_equalizer_preset_custom</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="redmi_buds_8_active_equalizer_presets_values">
|
||||
<item>21</item>
|
||||
<item>6</item>
|
||||
<item>5</item>
|
||||
<item>1</item>
|
||||
<item>7</item>
|
||||
<item>10</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="earfun_ambient_sound_control_names">
|
||||
<item>@string/sony_ambient_sound_off</item>
|
||||
<item>@string/sony_ambient_sound_noise_cancelling</item>
|
||||
|
||||
@@ -2179,6 +2179,7 @@
|
||||
<string name="devicetype_redmi_buds_5_pro" translatable="false">Redmi Buds 5 Pro</string>
|
||||
<string name="devicetype_redmi_buds_6_active" translatable="false">Redmi Buds 6 Active</string>
|
||||
<string name="devicetype_redmi_buds_6_pro" translatable="false">Redmi Buds 6 Pro</string>
|
||||
<string name="devicetype_redmi_buds_8_active" translatable="false">Redmi Buds 8 Active</string>
|
||||
<string name="devicetype_redmi_smart_band_2" translatable="false">Redmi Smart Band 2</string>
|
||||
<string name="devicetype_redmi_smart_band_3" translatable="false">Redmi Smart Band 3</string>
|
||||
<string name="devicetype_redmi_watch_2" translatable="false">Redmi Watch 2</string>
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
<?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">
|
||||
<PreferenceCategory
|
||||
android:key="pref_key_header_redmibuds8active_system"
|
||||
android:title="@string/pref_header_system">
|
||||
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_touch"
|
||||
android:key="pref_screen_redmibuds8active_touch_options"
|
||||
android:persistent="false"
|
||||
android:title="@string/prefs_galaxy_touch_options">
|
||||
|
||||
<PreferenceCategory android:title="@string/single_tap">
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_8_active_single_button_function_names"
|
||||
android:entryValues="@array/redmi_buds_8_active_single_button_function_values"
|
||||
android:icon="@drawable/ic_filter_1"
|
||||
android:defaultValue="8"
|
||||
android:key="pref_redmi_buds_8_active_control_single_tap_left"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/prefs_left" />
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_8_active_single_button_function_names"
|
||||
android:entryValues="@array/redmi_buds_8_active_single_button_function_values"
|
||||
android:defaultValue="8"
|
||||
android:key="pref_redmi_buds_8_active_control_single_tap_right"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/prefs_right" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/double_tap">
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_8_active_button_function_names"
|
||||
android:entryValues="@array/redmi_buds_8_active_button_function_values"
|
||||
android:icon="@drawable/ic_filter_2"
|
||||
android:defaultValue="1"
|
||||
android:key="pref_redmi_buds_8_active_control_double_tap_left"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/prefs_left" />
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_8_active_button_function_names"
|
||||
android:entryValues="@array/redmi_buds_8_active_button_function_values"
|
||||
android:defaultValue="1"
|
||||
android:key="pref_redmi_buds_8_active_control_double_tap_right"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/prefs_right" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/triple_tap">
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_8_active_button_function_names"
|
||||
android:entryValues="@array/redmi_buds_8_active_button_function_values"
|
||||
android:icon="@drawable/ic_filter_3"
|
||||
android:defaultValue="3"
|
||||
android:key="pref_redmi_buds_8_active_control_triple_tap_left"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/prefs_left" />
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_8_active_button_function_names"
|
||||
android:entryValues="@array/redmi_buds_8_active_button_function_values"
|
||||
android:defaultValue="3"
|
||||
android:key="pref_redmi_buds_8_active_control_triple_tap_right"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/prefs_right" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/long_press">
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_8_active_long_button_mode_names"
|
||||
android:entryValues="@array/redmi_buds_8_active_long_button_mode_values"
|
||||
android:icon="@drawable/ic_touch"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_8_active_control_long_tap_mode_left"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/sony_button_mode_left" />
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_8_active_long_button_mode_names"
|
||||
android:entryValues="@array/redmi_buds_8_active_long_button_mode_values"
|
||||
android:icon="@drawable/ic_touch"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_8_active_control_long_tap_mode_right"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/sony_button_mode_right" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="pref_redmi_buds_5_pro_double_connection"
|
||||
android:summary="@string/redmi_buds_5_pro_double_connection_description"
|
||||
android:title="@string/redmi_buds_5_pro_double_connection"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
</androidx.preference.PreferenceScreen>
|
||||
@@ -0,0 +1,130 @@
|
||||
<?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">
|
||||
<PreferenceCategory
|
||||
android:key="pref_key_header_redmibuds8active_sound"
|
||||
android:title="@string/pref_header_sound">
|
||||
|
||||
<PreferenceScreen
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:key="pref_sony_equalizer"
|
||||
android:persistent="false"
|
||||
android:title="@string/pref_header_equalizer">
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_8_active_equalizer_presets_names"
|
||||
android:entryValues="@array/redmi_buds_8_active_equalizer_presets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="21"
|
||||
android:key="pref_redmi_buds_8_active_equalizer_preset"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/prefs_equalizer_preset" />
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_key_header_redmibuds8active_custom_equalizer"
|
||||
android:title="@string/soundcore_equalizer_custom_title">
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_5_pro_equalizer_offsets_names"
|
||||
android:entryValues="@array/redmi_buds_5_pro_equalizer_offsets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_5_pro_equalizer_band_62"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/redmi_buds_5_pro_equalizer_band_62" />
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_5_pro_equalizer_offsets_names"
|
||||
android:entryValues="@array/redmi_buds_5_pro_equalizer_offsets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_5_pro_equalizer_band_125"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/redmi_buds_5_pro_equalizer_band_125" />
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_5_pro_equalizer_offsets_names"
|
||||
android:entryValues="@array/redmi_buds_5_pro_equalizer_offsets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_5_pro_equalizer_band_250"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/redmi_buds_5_pro_equalizer_band_250" />
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_5_pro_equalizer_offsets_names"
|
||||
android:entryValues="@array/redmi_buds_5_pro_equalizer_offsets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_5_pro_equalizer_band_500"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/redmi_buds_5_pro_equalizer_band_500" />
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_5_pro_equalizer_offsets_names"
|
||||
android:entryValues="@array/redmi_buds_5_pro_equalizer_offsets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_5_pro_equalizer_band_1k"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/redmi_buds_5_pro_equalizer_band_1k" />
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_5_pro_equalizer_offsets_names"
|
||||
android:entryValues="@array/redmi_buds_5_pro_equalizer_offsets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_5_pro_equalizer_band_2k"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/redmi_buds_5_pro_equalizer_band_2k" />
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_5_pro_equalizer_offsets_names"
|
||||
android:entryValues="@array/redmi_buds_5_pro_equalizer_offsets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_5_pro_equalizer_band_4k"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/redmi_buds_5_pro_equalizer_band_4k" />
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_5_pro_equalizer_offsets_names"
|
||||
android:entryValues="@array/redmi_buds_5_pro_equalizer_offsets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_5_pro_equalizer_band_8k"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/redmi_buds_5_pro_equalizer_band_8k" />
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_5_pro_equalizer_offsets_names"
|
||||
android:entryValues="@array/redmi_buds_5_pro_equalizer_offsets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_5_pro_equalizer_band_12k"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/redmi_buds_5_pro_equalizer_band_12k" />
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/redmi_buds_5_pro_equalizer_offsets_names"
|
||||
android:entryValues="@array/redmi_buds_5_pro_equalizer_offsets_values"
|
||||
android:icon="@drawable/ic_graphic_eq"
|
||||
android:defaultValue="0"
|
||||
android:key="pref_redmi_buds_5_pro_equalizer_band_16k"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
android:title="@string/redmi_buds_5_pro_equalizer_band_16k" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
</PreferenceScreen>
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="pref_redmi_buds_5_pro_adaptive_sound"
|
||||
android:layout="@layout/preference_checkbox"
|
||||
android:summary="@string/redmi_buds_5_pro_adaptive_sound_description"
|
||||
android:title="@string/redmi_buds_5_pro_adaptive_sound" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
</androidx.preference.PreferenceScreen>
|
||||
Reference in New Issue
Block a user