Loading src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +24 −2 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import java.util.List; public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment { public static final String KEY_DEVICE_ADDRESS = "device_address"; private static final String TAG = "BTDeviceDetailsFrg"; private static final int METADATA_FAST_PAIR_CUSTOMIZED_FIELDS = 25; @VisibleForTesting static int EDIT_DEVICE_NAME_ITEM_ID = Menu.FIRST; Loading Loading @@ -95,11 +96,14 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment LocalBluetoothManager mManager; @VisibleForTesting CachedBluetoothDevice mCachedDevice; BluetoothAdapter mBluetoothAdapter; @Nullable InputDevice mInputDevice; private UserManager mUserManager; int mExtraControlViewWidth = 0; boolean mExtraControlUriLoaded = false; private final BluetoothCallback mBluetoothCallback = new BluetoothCallback() { Loading @@ -115,6 +119,16 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment } }; private final BluetoothAdapter.OnMetadataChangedListener mExtraControlMetadataListener = (device, key, value) -> { if (key == METADATA_FAST_PAIR_CUSTOMIZED_FIELDS && mExtraControlViewWidth > 0 && !mExtraControlUriLoaded) { Log.i(TAG, "Update extra control UI because of metadata change."); updateExtraControlUri(mExtraControlViewWidth); } }; public BluetoothDeviceDetailsFragment() { super(DISALLOW_CONFIG_BLUETOOTH); } Loading Loading @@ -173,6 +187,7 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment public void onAttach(Context context) { mDeviceAddress = getArguments().getString(KEY_DEVICE_ADDRESS); mManager = getLocalBluetoothManager(context); mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); mCachedDevice = getCachedDevice(mDeviceAddress); mUserManager = getUserManager(); Loading Loading @@ -202,12 +217,18 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment : null); mManager.getEventManager().registerCallback(mBluetoothCallback); mBluetoothAdapter.addOnMetadataChangedListener( mCachedDevice.getDevice(), context.getMainExecutor(), mExtraControlMetadataListener); } @Override public void onDetach() { super.onDetach(); mManager.getEventManager().unregisterCallback(mBluetoothCallback); mBluetoothAdapter.removeOnMetadataChangedListener( mCachedDevice.getDevice(), mExtraControlMetadataListener); } private void updateExtraControlUri(int viewWidth) { Loading @@ -222,9 +243,9 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment controlUri = Uri.parse(uri + viewWidth); } catch (NullPointerException exception) { Log.d(TAG, "unable to parse uri"); controlUri = null; } } mExtraControlUriLoaded |= controlUri != null; final SlicePreferenceController slicePreferenceController = use( SlicePreferenceController.class); slicePreferenceController.setSliceUri(sliceEnabled ? controlUri : null); Loading Loading @@ -253,7 +274,8 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment if (view.getWidth() <= 0) { return; } updateExtraControlUri(view.getWidth() - getPaddingSize()); mExtraControlViewWidth = view.getWidth() - getPaddingSize(); updateExtraControlUri(mExtraControlViewWidth); view.getViewTreeObserver().removeOnGlobalLayoutListener( mOnGlobalLayoutListener); } Loading Loading
src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +24 −2 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ import java.util.List; public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment { public static final String KEY_DEVICE_ADDRESS = "device_address"; private static final String TAG = "BTDeviceDetailsFrg"; private static final int METADATA_FAST_PAIR_CUSTOMIZED_FIELDS = 25; @VisibleForTesting static int EDIT_DEVICE_NAME_ITEM_ID = Menu.FIRST; Loading Loading @@ -95,11 +96,14 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment LocalBluetoothManager mManager; @VisibleForTesting CachedBluetoothDevice mCachedDevice; BluetoothAdapter mBluetoothAdapter; @Nullable InputDevice mInputDevice; private UserManager mUserManager; int mExtraControlViewWidth = 0; boolean mExtraControlUriLoaded = false; private final BluetoothCallback mBluetoothCallback = new BluetoothCallback() { Loading @@ -115,6 +119,16 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment } }; private final BluetoothAdapter.OnMetadataChangedListener mExtraControlMetadataListener = (device, key, value) -> { if (key == METADATA_FAST_PAIR_CUSTOMIZED_FIELDS && mExtraControlViewWidth > 0 && !mExtraControlUriLoaded) { Log.i(TAG, "Update extra control UI because of metadata change."); updateExtraControlUri(mExtraControlViewWidth); } }; public BluetoothDeviceDetailsFragment() { super(DISALLOW_CONFIG_BLUETOOTH); } Loading Loading @@ -173,6 +187,7 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment public void onAttach(Context context) { mDeviceAddress = getArguments().getString(KEY_DEVICE_ADDRESS); mManager = getLocalBluetoothManager(context); mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); mCachedDevice = getCachedDevice(mDeviceAddress); mUserManager = getUserManager(); Loading Loading @@ -202,12 +217,18 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment : null); mManager.getEventManager().registerCallback(mBluetoothCallback); mBluetoothAdapter.addOnMetadataChangedListener( mCachedDevice.getDevice(), context.getMainExecutor(), mExtraControlMetadataListener); } @Override public void onDetach() { super.onDetach(); mManager.getEventManager().unregisterCallback(mBluetoothCallback); mBluetoothAdapter.removeOnMetadataChangedListener( mCachedDevice.getDevice(), mExtraControlMetadataListener); } private void updateExtraControlUri(int viewWidth) { Loading @@ -222,9 +243,9 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment controlUri = Uri.parse(uri + viewWidth); } catch (NullPointerException exception) { Log.d(TAG, "unable to parse uri"); controlUri = null; } } mExtraControlUriLoaded |= controlUri != null; final SlicePreferenceController slicePreferenceController = use( SlicePreferenceController.class); slicePreferenceController.setSliceUri(sliceEnabled ? controlUri : null); Loading Loading @@ -253,7 +274,8 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment if (view.getWidth() <= 0) { return; } updateExtraControlUri(view.getWidth() - getPaddingSize()); mExtraControlViewWidth = view.getWidth() - getPaddingSize(); updateExtraControlUri(mExtraControlViewWidth); view.getViewTreeObserver().removeOnGlobalLayoutListener( mOnGlobalLayoutListener); } Loading