Merge "Use androidx.window from prebuilt." into tm-dev
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
index b57ea92..36b5718 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
@@ -20,6 +20,7 @@
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.content.Context;
+import android.provider.DeviceConfig;
import android.text.TextUtils;
import android.util.Log;
@@ -31,6 +32,7 @@
import androidx.preference.SwitchPreference;
import com.android.settings.R;
+import com.android.settings.core.SettingsUIDeviceConfig;
import com.android.settingslib.bluetooth.A2dpProfile;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LeAudioProfile;
@@ -70,6 +72,7 @@
private List<CachedBluetoothDevice> mAllOfCachedDevices;
private Map<String, List<CachedBluetoothDevice>> mProfileDeviceMap =
new HashMap<String, List<CachedBluetoothDevice>>();
+ private boolean mIsLeContactSharingEnabled = false;
@VisibleForTesting
PreferenceCategory mProfilesContainer;
@@ -88,6 +91,8 @@
protected void init(PreferenceScreen screen) {
mProfilesContainer = (PreferenceCategory)screen.findPreference(getPreferenceKey());
mProfilesContainer.setLayoutResource(R.layout.preference_bluetooth_profile_category);
+ mIsLeContactSharingEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
+ SettingsUIDeviceConfig.BT_LE_AUDIO_CONTACT_SHARING_ENABLED, false);
// Call refresh here even though it will get called later in onResume, to avoid the
// list of switches appearing to "pop" into the page.
refresh();
@@ -119,21 +124,11 @@
private void refreshProfilePreference(SwitchPreference profilePref,
LocalBluetoothProfile profile) {
BluetoothDevice device = mCachedDevice.getDevice();
- boolean isLeAudioEnabled = false;
+ boolean isLeAudioEnabled = isLeAudioEnabled();
if (profile instanceof A2dpProfile || HEADSET_CLIENT.equals(profile.toString())) {
- LocalBluetoothProfile leAudio = mProfileManager.getLeAudioProfile();
- if (leAudio != null) {
- List<CachedBluetoothDevice> leAudioDeviceList = mProfileDeviceMap.get(
- leAudio.toString());
- if (leAudioDeviceList != null
- && leAudioDeviceList.stream()
- .anyMatch(item -> leAudio.isEnabled(item.getDevice()))) {
- isLeAudioEnabled = true;
- }
- }
if (isLeAudioEnabled) {
// If the LeAudio profile is enabled on the LeAudio devices, then the
- // SwitchPreferences of A2dp profile and Hfp profile are graied out.
+ // SwitchPreferences of A2dp profile and Hfp profile are grayed out.
profilePref.setEnabled(false);
} else {
List<CachedBluetoothDevice> deviceList = mProfileDeviceMap.get(
@@ -145,12 +140,9 @@
} else if (profile instanceof LeAudioProfile) {
List<CachedBluetoothDevice> leAudioDeviceList = mProfileDeviceMap.get(
profile.toString());
- boolean isLeAudioProfileEnable =
- leAudioDeviceList != null && leAudioDeviceList.stream().anyMatch(
- item -> profile.isEnabled(item.getDevice()));
boolean isBusy = leAudioDeviceList != null
&& leAudioDeviceList.stream().anyMatch(item -> item.isBusy());
- if (isLeAudioProfileEnable && !isBusy) {
+ if (isLeAudioEnabled && !isBusy) {
LocalBluetoothProfile a2dp = mProfileManager.getA2dpProfile();
LocalBluetoothProfile hfp = mProfileManager.getHfpClientProfile();
// If the LeAudio profile is enabled on the LeAudio devices, then the
@@ -169,6 +161,10 @@
}
}
profilePref.setEnabled(!isBusy);
+ } else if (profile instanceof PbapServerProfile
+ && isLeAudioEnabled
+ && !mIsLeContactSharingEnabled) {
+ profilePref.setEnabled(false);
} else {
profilePref.setEnabled(!mCachedDevice.isBusy());
}
@@ -203,6 +199,20 @@
}
}
+ private boolean isLeAudioEnabled(){
+ LocalBluetoothProfile leAudio = mProfileManager.getLeAudioProfile();
+ if (leAudio != null) {
+ List<CachedBluetoothDevice> leAudioDeviceList = mProfileDeviceMap.get(
+ leAudio.toString());
+ if (leAudioDeviceList != null
+ && leAudioDeviceList.stream()
+ .anyMatch(item -> leAudio.isEnabled(item.getDevice()))) {
+ return true;
+ }
+ }
+ return false;
+ }
+
/**
* Helper method to enable a profile for a device.
*/
diff --git a/src/com/android/settings/core/SettingsUIDeviceConfig.java b/src/com/android/settings/core/SettingsUIDeviceConfig.java
index 8c85c82..94074df 100644
--- a/src/com/android/settings/core/SettingsUIDeviceConfig.java
+++ b/src/com/android/settings/core/SettingsUIDeviceConfig.java
@@ -33,7 +33,11 @@
* {@code true} if near by device suggestion is enabled in connected device page
*/
public static final String BT_NEAR_BY_SUGGESTION_ENABLED = "bt_near_by_suggestion_enabled";
-
+ /**
+ * {@code true} if le audio contact sharing is enabled in BT device detail page
+ */
+ public static final String BT_LE_AUDIO_CONTACT_SHARING_ENABLED =
+ "bt_le_audio_contact_sharing_enabled";
/**
* {@code true} whether or not event_log for generic actions is enabled. Default is true.
*/
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailActivity.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailActivity.java
index 03ddde5..67f2323 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailActivity.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailActivity.java
@@ -68,6 +68,7 @@
.setTitleRes(R.string.battery_details_title)
.setArguments(args)
.setSourceMetricsCategory(SettingsEnums.APPLICATIONS_INSTALLED_APP_DETAILS)
+ .addFlags(intent.getFlags())
.launch();
}