Loading res/values/strings.xml +10 −8 Original line number Diff line number Diff line Loading @@ -329,14 +329,16 @@ <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_a2dp_hw_offload">Disable Bluetooth A2DP hardware offload</string> <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_a2dp_hw_offload_dialog_title">Restart Device?</string> <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_a2dp_hw_offload_dialog_message">You need to restart your device to change this setting.</string> <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_a2dp_hw_offload_dialog_confirm">Restart</string> <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_a2dp_hw_offload_dialog_cancel">Cancel</string> <!-- UI debug setting: Disable Bluetooth LE AUDIO hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_le_audio_hw_offload">Disable Bluetooth LE AUDIO hardware offload</string> <!-- UI debug setting: Disable Bluetooth hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_hw_offload_dialog_title">Restart Device?</string> <!-- UI debug setting: Disable Bluetooth hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_hw_offload_dialog_message">You need to restart your device to change this setting.</string> <!-- UI debug setting: Disable Bluetooth hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_hw_offload_dialog_confirm">Restart</string> <!-- UI debug setting: Disable Bluetooth hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_hw_offload_dialog_cancel">Cancel</string> <!-- Title for Bluetooth device group with media capability group [CHAR LIMIT=none]--> <string name="connected_device_media_device_title">Media devices</string> res/xml/development_settings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -306,6 +306,10 @@ android:key="bluetooth_disable_a2dp_hw_offload" android:title="@string/bluetooth_disable_a2dp_hw_offload" /> <SwitchPreference android:key="bluetooth_disable_le_audio_hw_offload" android:title="@string/bluetooth_disable_le_audio_hw_offload" /> <ListPreference android:key="bluetooth_select_avrcp_version" android:title="@string/bluetooth_select_avrcp_version_string" Loading src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java +25 −2 Original line number Diff line number Diff line Loading @@ -16,9 +16,12 @@ package com.android.settings.development; import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController.LE_AUDIO_OFFLOAD_DISABLED_PROPERTY; import android.content.Context; import android.os.SystemProperties; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.SwitchPreference; Loading @@ -34,6 +37,9 @@ public class BluetoothA2dpHwOffloadPreferenceController extends DeveloperOptions static final String A2DP_OFFLOAD_DISABLED_PROPERTY = "persist.bluetooth.a2dp_offload.disabled"; static final String A2DP_OFFLOAD_SUPPORTED_PROPERTY = "ro.bluetooth.a2dp_offload.supported"; @VisibleForTesting boolean mChanged = false; public BluetoothA2dpHwOffloadPreferenceController(Context context, DevelopmentSettingsDashboardFragment fragment) { super(context); Loading @@ -47,7 +53,8 @@ public class BluetoothA2dpHwOffloadPreferenceController extends DeveloperOptions @Override public boolean onPreferenceChange(Preference preference, Object newValue) { BluetoothA2dpHwOffloadRebootDialog.show(mFragment, this); BluetoothHwOffloadRebootDialog.show(mFragment); mChanged = true; return false; } Loading Loading @@ -85,10 +92,26 @@ public class BluetoothA2dpHwOffloadPreferenceController extends DeveloperOptions return offloadSupported ? !offloadDisabled : true; } public void onA2dpHwDialogConfirmed() { /** * Called when the HwOffloadDialog confirm is clicked. */ public void onHwOffloadDialogConfirmed() { if (!mChanged) { return; } final boolean offloadDisabled = SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false); SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(!offloadDisabled)); if (offloadDisabled) { SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(!offloadDisabled)); } } /** * Called when the HwOffloadDialog cancel is clicked. */ public void onHwOffloadDialogCanceled() { mChanged = false; } } src/com/android/settings/development/BluetoothA2dpHwOffloadRebootDialog.java→src/com/android/settings/development/BluetoothHwOffloadRebootDialog.java +32 −15 Original line number Diff line number Diff line Loading @@ -28,17 +28,23 @@ import androidx.fragment.app.FragmentManager; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; public class BluetoothA2dpHwOffloadRebootDialog extends InstrumentedDialogFragment /** * The a2dp and LE audio offload switch should reboot the device to take effect, the dialog is * to ask the user to reboot the device after a2dp or LE audio offload user preference changed */ public class BluetoothHwOffloadRebootDialog extends InstrumentedDialogFragment implements DialogInterface.OnClickListener { public static final String TAG = "BluetoothA2dpHwOffloadReboot"; public static final String TAG = "BluetoothHwOffloadReboot"; public static void show(DevelopmentSettingsDashboardFragment host, BluetoothA2dpHwOffloadPreferenceController controller) { /** * The function to show the HwOffloadReboot Dialog. */ public static void show(DevelopmentSettingsDashboardFragment host) { final FragmentManager manager = host.getActivity().getSupportFragmentManager(); if (manager.findFragmentByTag(TAG) == null) { final BluetoothA2dpHwOffloadRebootDialog dialog = new BluetoothA2dpHwOffloadRebootDialog(); final BluetoothHwOffloadRebootDialog dialog = new BluetoothHwOffloadRebootDialog(); dialog.setTargetFragment(host, 0 /* requestCode */); dialog.show(manager, TAG); } Loading @@ -52,33 +58,44 @@ public class BluetoothA2dpHwOffloadRebootDialog extends InstrumentedDialogFragme @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()) .setMessage(R.string.bluetooth_disable_a2dp_hw_offload_dialog_message) .setTitle(R.string.bluetooth_disable_a2dp_hw_offload_dialog_title) .setMessage(R.string.bluetooth_disable_hw_offload_dialog_message) .setTitle(R.string.bluetooth_disable_hw_offload_dialog_title) .setPositiveButton( R.string.bluetooth_disable_a2dp_hw_offload_dialog_confirm, this) R.string.bluetooth_disable_hw_offload_dialog_confirm, this) .setNegativeButton( R.string.bluetooth_disable_a2dp_hw_offload_dialog_cancel, this) R.string.bluetooth_disable_hw_offload_dialog_cancel, this) .create(); } @Override public void onClick(DialogInterface dialog, int which) { final OnA2dpHwDialogConfirmedListener host = (OnA2dpHwDialogConfirmedListener) getTargetFragment(); final OnHwOffloadDialogListener host = (OnHwOffloadDialogListener) getTargetFragment(); if (host == null) { return; } if (which == DialogInterface.BUTTON_POSITIVE) { host.onA2dpHwDialogConfirmed(); host.onHwOffloadDialogConfirmed(); PowerManager pm = getContext().getSystemService(PowerManager.class); pm.reboot(null); } else { host.onHwOffloadDialogCanceled(); } } public interface OnA2dpHwDialogConfirmedListener { /** * The interface for the HsOffloadDialogListener to provide the action as the * confirmed or canceled clicked. */ public interface OnHwOffloadDialogListener { /** * Called when the user presses reboot on the warning dialog. */ void onA2dpHwDialogConfirmed(); void onHwOffloadDialogConfirmed(); /** * Called when the user presses cancel on the warning dialog. */ void onHwOffloadDialogCanceled(); } } src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java 0 → 100644 +127 −0 Original line number Diff line number Diff line /* * Copyright 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.development; import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController.A2DP_OFFLOAD_SUPPORTED_PROPERTY; import android.content.Context; import android.os.SystemProperties; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.SwitchPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.development.DeveloperOptionsPreferenceController; /** * Preference controller to control Bluetooth LE audio offload */ public class BluetoothLeAudioHwOffloadPreferenceController extends DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String PREFERENCE_KEY = "bluetooth_disable_le_audio_hw_offload"; private final DevelopmentSettingsDashboardFragment mFragment; static final String LE_AUDIO_OFFLOAD_DISABLED_PROPERTY = "persist.bluetooth.leaudio_offload.disabled"; static final String LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY = "ro.bluetooth.leaudio_offload.supported"; @VisibleForTesting boolean mChanged = false; public BluetoothLeAudioHwOffloadPreferenceController(Context context, DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; } @Override public String getPreferenceKey() { return PREFERENCE_KEY; } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { BluetoothHwOffloadRebootDialog.show(mFragment); mChanged = true; return false; } @Override public void updateState(Preference preference) { final boolean offloadSupported = SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false) && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false); if (offloadSupported) { final boolean offloadDisabled = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true); ((SwitchPreference) mPreference).setChecked(offloadDisabled); } else { mPreference.setEnabled(false); ((SwitchPreference) mPreference).setChecked(true); } } @Override protected void onDeveloperOptionsSwitchDisabled() { super.onDeveloperOptionsSwitchDisabled(); final boolean offloadSupported = SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false) && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false); if (offloadSupported) { ((SwitchPreference) mPreference).setChecked(true); SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, "true"); } } /** * Check if the le audio offload setting is default value. */ public boolean isDefaultValue() { final boolean offloadSupported = SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false) && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false); final boolean offloadDisabled = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false); return offloadSupported ? offloadDisabled : true; } /** * Called when the HwOffloadDialog confirm is clicked. */ public void onHwOffloadDialogConfirmed() { if (!mChanged) { return; } final boolean offloadDisabled = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false); SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(!offloadDisabled)); } /** * Called when the HwOffloadDialog cancel is clicked. */ public void onHwOffloadDialogCanceled() { mChanged = false; } } Loading
res/values/strings.xml +10 −8 Original line number Diff line number Diff line Loading @@ -329,14 +329,16 @@ <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_a2dp_hw_offload">Disable Bluetooth A2DP hardware offload</string> <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_a2dp_hw_offload_dialog_title">Restart Device?</string> <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_a2dp_hw_offload_dialog_message">You need to restart your device to change this setting.</string> <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_a2dp_hw_offload_dialog_confirm">Restart</string> <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_a2dp_hw_offload_dialog_cancel">Cancel</string> <!-- UI debug setting: Disable Bluetooth LE AUDIO hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_le_audio_hw_offload">Disable Bluetooth LE AUDIO hardware offload</string> <!-- UI debug setting: Disable Bluetooth hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_hw_offload_dialog_title">Restart Device?</string> <!-- UI debug setting: Disable Bluetooth hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_hw_offload_dialog_message">You need to restart your device to change this setting.</string> <!-- UI debug setting: Disable Bluetooth hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_hw_offload_dialog_confirm">Restart</string> <!-- UI debug setting: Disable Bluetooth hardware offload [CHAR LIMIT=none] --> <string name="bluetooth_disable_hw_offload_dialog_cancel">Cancel</string> <!-- Title for Bluetooth device group with media capability group [CHAR LIMIT=none]--> <string name="connected_device_media_device_title">Media devices</string>
res/xml/development_settings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -306,6 +306,10 @@ android:key="bluetooth_disable_a2dp_hw_offload" android:title="@string/bluetooth_disable_a2dp_hw_offload" /> <SwitchPreference android:key="bluetooth_disable_le_audio_hw_offload" android:title="@string/bluetooth_disable_le_audio_hw_offload" /> <ListPreference android:key="bluetooth_select_avrcp_version" android:title="@string/bluetooth_select_avrcp_version_string" Loading
src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java +25 −2 Original line number Diff line number Diff line Loading @@ -16,9 +16,12 @@ package com.android.settings.development; import static com.android.settings.development.BluetoothLeAudioHwOffloadPreferenceController.LE_AUDIO_OFFLOAD_DISABLED_PROPERTY; import android.content.Context; import android.os.SystemProperties; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.SwitchPreference; Loading @@ -34,6 +37,9 @@ public class BluetoothA2dpHwOffloadPreferenceController extends DeveloperOptions static final String A2DP_OFFLOAD_DISABLED_PROPERTY = "persist.bluetooth.a2dp_offload.disabled"; static final String A2DP_OFFLOAD_SUPPORTED_PROPERTY = "ro.bluetooth.a2dp_offload.supported"; @VisibleForTesting boolean mChanged = false; public BluetoothA2dpHwOffloadPreferenceController(Context context, DevelopmentSettingsDashboardFragment fragment) { super(context); Loading @@ -47,7 +53,8 @@ public class BluetoothA2dpHwOffloadPreferenceController extends DeveloperOptions @Override public boolean onPreferenceChange(Preference preference, Object newValue) { BluetoothA2dpHwOffloadRebootDialog.show(mFragment, this); BluetoothHwOffloadRebootDialog.show(mFragment); mChanged = true; return false; } Loading Loading @@ -85,10 +92,26 @@ public class BluetoothA2dpHwOffloadPreferenceController extends DeveloperOptions return offloadSupported ? !offloadDisabled : true; } public void onA2dpHwDialogConfirmed() { /** * Called when the HwOffloadDialog confirm is clicked. */ public void onHwOffloadDialogConfirmed() { if (!mChanged) { return; } final boolean offloadDisabled = SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false); SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(!offloadDisabled)); if (offloadDisabled) { SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(!offloadDisabled)); } } /** * Called when the HwOffloadDialog cancel is clicked. */ public void onHwOffloadDialogCanceled() { mChanged = false; } }
src/com/android/settings/development/BluetoothA2dpHwOffloadRebootDialog.java→src/com/android/settings/development/BluetoothHwOffloadRebootDialog.java +32 −15 Original line number Diff line number Diff line Loading @@ -28,17 +28,23 @@ import androidx.fragment.app.FragmentManager; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; public class BluetoothA2dpHwOffloadRebootDialog extends InstrumentedDialogFragment /** * The a2dp and LE audio offload switch should reboot the device to take effect, the dialog is * to ask the user to reboot the device after a2dp or LE audio offload user preference changed */ public class BluetoothHwOffloadRebootDialog extends InstrumentedDialogFragment implements DialogInterface.OnClickListener { public static final String TAG = "BluetoothA2dpHwOffloadReboot"; public static final String TAG = "BluetoothHwOffloadReboot"; public static void show(DevelopmentSettingsDashboardFragment host, BluetoothA2dpHwOffloadPreferenceController controller) { /** * The function to show the HwOffloadReboot Dialog. */ public static void show(DevelopmentSettingsDashboardFragment host) { final FragmentManager manager = host.getActivity().getSupportFragmentManager(); if (manager.findFragmentByTag(TAG) == null) { final BluetoothA2dpHwOffloadRebootDialog dialog = new BluetoothA2dpHwOffloadRebootDialog(); final BluetoothHwOffloadRebootDialog dialog = new BluetoothHwOffloadRebootDialog(); dialog.setTargetFragment(host, 0 /* requestCode */); dialog.show(manager, TAG); } Loading @@ -52,33 +58,44 @@ public class BluetoothA2dpHwOffloadRebootDialog extends InstrumentedDialogFragme @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()) .setMessage(R.string.bluetooth_disable_a2dp_hw_offload_dialog_message) .setTitle(R.string.bluetooth_disable_a2dp_hw_offload_dialog_title) .setMessage(R.string.bluetooth_disable_hw_offload_dialog_message) .setTitle(R.string.bluetooth_disable_hw_offload_dialog_title) .setPositiveButton( R.string.bluetooth_disable_a2dp_hw_offload_dialog_confirm, this) R.string.bluetooth_disable_hw_offload_dialog_confirm, this) .setNegativeButton( R.string.bluetooth_disable_a2dp_hw_offload_dialog_cancel, this) R.string.bluetooth_disable_hw_offload_dialog_cancel, this) .create(); } @Override public void onClick(DialogInterface dialog, int which) { final OnA2dpHwDialogConfirmedListener host = (OnA2dpHwDialogConfirmedListener) getTargetFragment(); final OnHwOffloadDialogListener host = (OnHwOffloadDialogListener) getTargetFragment(); if (host == null) { return; } if (which == DialogInterface.BUTTON_POSITIVE) { host.onA2dpHwDialogConfirmed(); host.onHwOffloadDialogConfirmed(); PowerManager pm = getContext().getSystemService(PowerManager.class); pm.reboot(null); } else { host.onHwOffloadDialogCanceled(); } } public interface OnA2dpHwDialogConfirmedListener { /** * The interface for the HsOffloadDialogListener to provide the action as the * confirmed or canceled clicked. */ public interface OnHwOffloadDialogListener { /** * Called when the user presses reboot on the warning dialog. */ void onA2dpHwDialogConfirmed(); void onHwOffloadDialogConfirmed(); /** * Called when the user presses cancel on the warning dialog. */ void onHwOffloadDialogCanceled(); } }
src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java 0 → 100644 +127 −0 Original line number Diff line number Diff line /* * Copyright 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.development; import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController.A2DP_OFFLOAD_SUPPORTED_PROPERTY; import android.content.Context; import android.os.SystemProperties; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.SwitchPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settingslib.development.DeveloperOptionsPreferenceController; /** * Preference controller to control Bluetooth LE audio offload */ public class BluetoothLeAudioHwOffloadPreferenceController extends DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { private static final String PREFERENCE_KEY = "bluetooth_disable_le_audio_hw_offload"; private final DevelopmentSettingsDashboardFragment mFragment; static final String LE_AUDIO_OFFLOAD_DISABLED_PROPERTY = "persist.bluetooth.leaudio_offload.disabled"; static final String LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY = "ro.bluetooth.leaudio_offload.supported"; @VisibleForTesting boolean mChanged = false; public BluetoothLeAudioHwOffloadPreferenceController(Context context, DevelopmentSettingsDashboardFragment fragment) { super(context); mFragment = fragment; } @Override public String getPreferenceKey() { return PREFERENCE_KEY; } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { BluetoothHwOffloadRebootDialog.show(mFragment); mChanged = true; return false; } @Override public void updateState(Preference preference) { final boolean offloadSupported = SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false) && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false); if (offloadSupported) { final boolean offloadDisabled = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true); ((SwitchPreference) mPreference).setChecked(offloadDisabled); } else { mPreference.setEnabled(false); ((SwitchPreference) mPreference).setChecked(true); } } @Override protected void onDeveloperOptionsSwitchDisabled() { super.onDeveloperOptionsSwitchDisabled(); final boolean offloadSupported = SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false) && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false); if (offloadSupported) { ((SwitchPreference) mPreference).setChecked(true); SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, "true"); } } /** * Check if the le audio offload setting is default value. */ public boolean isDefaultValue() { final boolean offloadSupported = SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false) && SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_SUPPORTED_PROPERTY, false); final boolean offloadDisabled = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false); return offloadSupported ? offloadDisabled : true; } /** * Called when the HwOffloadDialog confirm is clicked. */ public void onHwOffloadDialogConfirmed() { if (!mChanged) { return; } final boolean offloadDisabled = SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, false); SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, Boolean.toString(!offloadDisabled)); } /** * Called when the HwOffloadDialog cancel is clicked. */ public void onHwOffloadDialogCanceled() { mChanged = false; } }