Merge changes from topic "catalyst" into main

* changes:
  [Catalyst] Migrate bluetooth screen to catalyst
  [Catalyst] Migrate BluetoothFooterPreference
  [Catalyst] Fully migrate BluetoothMainSwitchPreference
  [Catalyst] Add SatelliteRepository.isSatelliteOn helper method
  [Catalyst] Support callChangeListener for MainSwitchBarPreference
This commit is contained in:
Jacky Wang
2024-12-10 07:11:09 +00:00
committed by Android (Google) Code Review
13 changed files with 361 additions and 150 deletions

View File

@@ -26,7 +26,7 @@ import com.android.settingslib.widget.MainSwitchBar
/** Preference abstraction of the [MainSwitchBar] in settings activity. */
class MainSwitchBarPreference(context: Context, private val metadata: MainSwitchBarMetadata) :
TwoStatePreference(context), OnCheckedChangeListener {
TwoStatePreference(context), OnCheckedChangeListener, MainSwitchBar.PreChangeListener {
private val mainSwitchBar: MainSwitchBar = (context as SettingsActivity).switchBar
@@ -62,9 +62,12 @@ class MainSwitchBarPreference(context: Context, private val metadata: MainSwitch
override fun onAttached() {
super.onAttached()
mainSwitchBar.setPreChangeListener(this)
mainSwitchBar.addOnSwitchChangeListener(this)
}
override fun preChange(isCheck: Boolean) = callChangeListener(isCheck)
override fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) {
// prevent user from toggling the switch before data store operation is done
isEnabled = false
@@ -74,6 +77,7 @@ class MainSwitchBarPreference(context: Context, private val metadata: MainSwitch
override fun onDetached() {
mainSwitchBar.removeOnSwitchChangeListener(this)
mainSwitchBar.setPreChangeListener(null)
super.onDetached()
}
}

View File

@@ -109,7 +109,7 @@ public class SettingsMainSwitchBar extends MainSwitchBar {
return true;
}
return mSwitch.performClick();
return callPreChangeListener() && mSwitch.performClick();
}
@Override