diff --git a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java index d8e834dfbf8..ab0ed45d5e9 100644 --- a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java +++ b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java @@ -331,7 +331,9 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont MAIN_DEVICE_ID); } }); - if (Flags.enableBluetoothDeviceDetailsPolish()) { + boolean isTempBond = com.android.settingslib.flags.Flags.enableTemporaryBondDevicesUi() + && BluetoothUtils.isTemporaryBondDevice(mCachedDevice.getDevice()); + if (Flags.enableBluetoothDeviceDetailsPolish() && !isTempBond) { ImageButton renameButton = mLayoutPreference.findViewById(R.id.rename_button); renameButton.setVisibility(View.VISIBLE); renameButton.setOnClickListener(view -> { diff --git a/src/com/android/settings/bluetooth/GeneralBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/GeneralBluetoothDetailsHeaderController.java index 57a10278190..2ef8fc07721 100644 --- a/src/com/android/settings/bluetooth/GeneralBluetoothDetailsHeaderController.java +++ b/src/com/android/settings/bluetooth/GeneralBluetoothDetailsHeaderController.java @@ -89,15 +89,19 @@ public class GeneralBluetoothDetailsHeaderController extends BluetoothDetailsCon if (summary != null) { summary.setText(mCachedDevice.getConnectionSummary()); } - ImageButton renameButton = mLayoutPreference.findViewById(R.id.rename_button); - renameButton.setVisibility(View.VISIBLE); - renameButton.setOnClickListener( - view -> { - RemoteDeviceNameDialogFragment.newInstance(mCachedDevice) - .show( - mFragment.getFragmentManager(), - RemoteDeviceNameDialogFragment.TAG); - }); + boolean isTempBond = com.android.settingslib.flags.Flags.enableTemporaryBondDevicesUi() + && BluetoothUtils.isTemporaryBondDevice(mCachedDevice.getDevice()); + if (!isTempBond) { + ImageButton renameButton = mLayoutPreference.findViewById(R.id.rename_button); + renameButton.setVisibility(View.VISIBLE); + renameButton.setOnClickListener( + view -> { + RemoteDeviceNameDialogFragment.newInstance(mCachedDevice) + .show( + mFragment.getFragmentManager(), + RemoteDeviceNameDialogFragment.TAG); + }); + } } @Override diff --git a/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java index 4c7c98eb48f..df24452d3ac 100644 --- a/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java +++ b/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java @@ -168,7 +168,9 @@ public class LeAudioBluetoothDetailsHeaderController extends BasePreferenceContr if (mLayoutPreference == null || mCachedDevice == null) { return; } - if (Flags.enableBluetoothDeviceDetailsPolish()) { + boolean isTempBond = com.android.settingslib.flags.Flags.enableTemporaryBondDevicesUi() + && BluetoothUtils.isTemporaryBondDevice(mCachedDevice.getDevice()); + if (Flags.enableBluetoothDeviceDetailsPolish() && !isTempBond) { ImageButton renameButton = mLayoutPreference.findViewById(R.id.rename_button); renameButton.setVisibility(View.VISIBLE); renameButton.setOnClickListener(view -> { diff --git a/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java index fc1df5a0f69..53a8f5d2cdd 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java @@ -79,9 +79,12 @@ public class AdvancedBluetoothDetailsHeaderControllerTest { private static final int LOW_BATTERY_LEVEL_THRESHOLD = 15; private static final int BATTERY_LEVEL_5 = 5; private static final int BATTERY_LEVEL_50 = 50; + private static final int METADATA_FAST_PAIR_CUSTOMIZED_FIELDS = 25; private static final String ICON_URI = "content://test.provider/icon.png"; private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C"; private static final String DEVICE_SUMMARY = "test summary"; + private static final String TEMP_BOND_METADATA = + "le_audio_sharing"; private Context mContext; @@ -531,6 +534,23 @@ public class AdvancedBluetoothDetailsHeaderControllerTest { assertThat(button.getVisibility()).isEqualTo(View.VISIBLE); } + @Test + @EnableFlags({Flags.FLAG_ENABLE_BLUETOOTH_DEVICE_DETAILS_POLISH, + com.android.settingslib.flags.Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI}) + public void temporaryBondDevice_renameButtonNotShown() { + when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET)) + .thenReturn("true".getBytes()); + when(mBluetoothDevice.getMetadata(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS)) + .thenReturn(TEMP_BOND_METADATA.getBytes()); + Set cacheBluetoothDevices = new HashSet<>(); + when(mCachedDevice.getMemberDevice()).thenReturn(cacheBluetoothDevices); + + mController.onStart(); + + ImageButton button = mLayoutPreference.findViewById(R.id.rename_button); + assertThat(button.getVisibility()).isEqualTo(View.GONE); + } + private void assertBatteryPredictionVisible(LinearLayout linearLayout, int visible) { final TextView textView = linearLayout.findViewById(R.id.bt_battery_prediction); assertThat(textView.getVisibility()).isEqualTo(visible);