Loading res/layout/advanced_bt_entity_header.xml +34 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/entity_header" style="@style/EntityHeader" android:layout_width="match_parent" Loading @@ -25,15 +26,41 @@ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:orientation="vertical"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center"> <TextView android:id="@+id/entity_header_title" style="@style/TextAppearance.EntityHeaderTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center" android:layout_width="wrap_content" android:ellipsize="marquee" android:textDirection="locale"/> android:textDirection="locale" android:layout_marginStart="48dp" android:layout_marginEnd="48dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constrainedWidth="true" /> <ImageButton android:id="@+id/rename_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="@dimen/min_tap_target_size" android:minHeight="@dimen/min_tap_target_size" android:background="@android:color/transparent" android:src="@drawable/ic_mode_edit" android:contentDescription="@string/bluetooth_rename_button" android:tint="@color/settingslib_materialColorOnSurface" app:layout_constraintStart_toEndOf="@+id/entity_header_title" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:visibility="gone" /> </androidx.constraintlayout.widget.ConstraintLayout> <TextView android:id="@+id/entity_header_summary" Loading res/layout/general_bt_entity_header.xml 0 → 100644 +80 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2024 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. --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/entity_header" style="@style/EntityHeader" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:gravity="center_horizontal" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:orientation="vertical"> <ImageView android:id="@+id/bt_header_icon" android:importantForAccessibility="no" style="@style/SettingsLibEntityHeaderIcon"/> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="8dp" android:gravity="center"> <TextView android:id="@+id/bt_header_device_name" style="@style/TextAppearance.EntityHeaderTitle" android:layout_height="wrap_content" android:layout_width="wrap_content" android:gravity="center" android:ellipsize="marquee" android:textDirection="locale" android:layout_marginStart="48dp" android:layout_marginEnd="48dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constrainedWidth="true" /> <ImageButton android:id="@+id/rename_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="@dimen/min_tap_target_size" android:minHeight="@dimen/min_tap_target_size" android:background="@android:color/transparent" android:src="@drawable/ic_mode_edit" android:contentDescription="@string/bluetooth_rename_button" android:tint="@color/settingslib_materialColorOnSurface" app:layout_constraintStart_toEndOf="@+id/bt_header_device_name" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <TextView android:id="@+id/bt_header_connection_summary" style="@style/TextAppearance.EntityHeaderSummary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:singleLine="false" android:textAlignment="center"/> </LinearLayout> res/layout/le_audio_bt_entity_header.xml +35 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/entity_header" style="@style/EntityHeader" android:layout_width="match_parent" Loading @@ -27,15 +28,42 @@ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:orientation="vertical"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center"> <TextView android:id="@+id/entity_header_title" style="@style/TextAppearance.EntityHeaderTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center" android:ellipsize="marquee" android:textDirection="locale"/> android:textDirection="locale" android:layout_marginStart="48dp" android:layout_marginEnd="48dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constrainedWidth="true" /> <ImageButton android:id="@+id/rename_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="@dimen/min_tap_target_size" android:minHeight="@dimen/min_tap_target_size" android:background="@android:color/transparent" android:src="@drawable/ic_mode_edit" android:contentDescription="@string/bluetooth_rename_button" android:tint="@color/settingslib_materialColorOnSurface" app:layout_constraintStart_toEndOf="@+id/entity_header_title" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:visibility="gone" /> </androidx.constraintlayout.widget.ConstraintLayout> <TextView android:id="@+id/entity_header_summary" Loading res/xml/bluetooth_device_details_fragment.xml +7 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,13 @@ settings:allowDividerBelow="true" settings:searchable="false"/> <com.android.settingslib.widget.LayoutPreference android:key="general_bluetooth_device_header" android:layout="@layout/general_bt_entity_header" android:selectable="false" settings:allowDividerBelow="true" settings:searchable="false"/> <com.android.settingslib.widget.LayoutPreference android:key="advanced_bluetooth_device_header" android:layout="@layout/advanced_bt_entity_header" Loading src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java +15 −1 Original line number Diff line number Diff line Loading @@ -37,12 +37,14 @@ import android.util.Log; import android.util.Pair; import android.view.View; import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import com.android.settings.R; Loading Loading @@ -97,6 +99,7 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont private static final int MAIN_DEVICE_ID = 4; private static final float HALF_ALPHA = 0.5f; PreferenceFragmentCompat mFragment; @VisibleForTesting LayoutPreference mLayoutPreference; @VisibleForTesting Loading Loading @@ -170,8 +173,11 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont mIconCache.clear(); } public void init(CachedBluetoothDevice cachedBluetoothDevice) { /** Initializes the controller. */ public void init( CachedBluetoothDevice cachedBluetoothDevice, PreferenceFragmentCompat fragment) { mCachedDevice = cachedBluetoothDevice; mFragment = fragment; } private void registerBluetoothDevice() { Loading Loading @@ -325,6 +331,14 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont MAIN_DEVICE_ID); } }); if (Flags.enableBluetoothDeviceDetailsPolish()) { ImageButton renameButton = mLayoutPreference.findViewById(R.id.rename_button); renameButton.setVisibility(View.VISIBLE); renameButton.setOnClickListener(view -> { RemoteDeviceNameDialogFragment.newInstance(mCachedDevice).show( mFragment.getFragmentManager(), RemoteDeviceNameDialogFragment.TAG); }); } } } Loading Loading
res/layout/advanced_bt_entity_header.xml +34 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/entity_header" style="@style/EntityHeader" android:layout_width="match_parent" Loading @@ -25,15 +26,41 @@ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:orientation="vertical"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center"> <TextView android:id="@+id/entity_header_title" style="@style/TextAppearance.EntityHeaderTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center" android:layout_width="wrap_content" android:ellipsize="marquee" android:textDirection="locale"/> android:textDirection="locale" android:layout_marginStart="48dp" android:layout_marginEnd="48dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constrainedWidth="true" /> <ImageButton android:id="@+id/rename_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="@dimen/min_tap_target_size" android:minHeight="@dimen/min_tap_target_size" android:background="@android:color/transparent" android:src="@drawable/ic_mode_edit" android:contentDescription="@string/bluetooth_rename_button" android:tint="@color/settingslib_materialColorOnSurface" app:layout_constraintStart_toEndOf="@+id/entity_header_title" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:visibility="gone" /> </androidx.constraintlayout.widget.ConstraintLayout> <TextView android:id="@+id/entity_header_summary" Loading
res/layout/general_bt_entity_header.xml 0 → 100644 +80 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2024 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. --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/entity_header" style="@style/EntityHeader" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:gravity="center_horizontal" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:orientation="vertical"> <ImageView android:id="@+id/bt_header_icon" android:importantForAccessibility="no" style="@style/SettingsLibEntityHeaderIcon"/> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="8dp" android:gravity="center"> <TextView android:id="@+id/bt_header_device_name" style="@style/TextAppearance.EntityHeaderTitle" android:layout_height="wrap_content" android:layout_width="wrap_content" android:gravity="center" android:ellipsize="marquee" android:textDirection="locale" android:layout_marginStart="48dp" android:layout_marginEnd="48dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constrainedWidth="true" /> <ImageButton android:id="@+id/rename_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="@dimen/min_tap_target_size" android:minHeight="@dimen/min_tap_target_size" android:background="@android:color/transparent" android:src="@drawable/ic_mode_edit" android:contentDescription="@string/bluetooth_rename_button" android:tint="@color/settingslib_materialColorOnSurface" app:layout_constraintStart_toEndOf="@+id/bt_header_device_name" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <TextView android:id="@+id/bt_header_connection_summary" style="@style/TextAppearance.EntityHeaderSummary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:singleLine="false" android:textAlignment="center"/> </LinearLayout>
res/layout/le_audio_bt_entity_header.xml +35 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/entity_header" style="@style/EntityHeader" android:layout_width="match_parent" Loading @@ -27,15 +28,42 @@ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:orientation="vertical"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center"> <TextView android:id="@+id/entity_header_title" style="@style/TextAppearance.EntityHeaderTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center" android:ellipsize="marquee" android:textDirection="locale"/> android:textDirection="locale" android:layout_marginStart="48dp" android:layout_marginEnd="48dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constrainedWidth="true" /> <ImageButton android:id="@+id/rename_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="@dimen/min_tap_target_size" android:minHeight="@dimen/min_tap_target_size" android:background="@android:color/transparent" android:src="@drawable/ic_mode_edit" android:contentDescription="@string/bluetooth_rename_button" android:tint="@color/settingslib_materialColorOnSurface" app:layout_constraintStart_toEndOf="@+id/entity_header_title" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:visibility="gone" /> </androidx.constraintlayout.widget.ConstraintLayout> <TextView android:id="@+id/entity_header_summary" Loading
res/xml/bluetooth_device_details_fragment.xml +7 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,13 @@ settings:allowDividerBelow="true" settings:searchable="false"/> <com.android.settingslib.widget.LayoutPreference android:key="general_bluetooth_device_header" android:layout="@layout/general_bt_entity_header" android:selectable="false" settings:allowDividerBelow="true" settings:searchable="false"/> <com.android.settingslib.widget.LayoutPreference android:key="advanced_bluetooth_device_header" android:layout="@layout/advanced_bt_entity_header" Loading
src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java +15 −1 Original line number Diff line number Diff line Loading @@ -37,12 +37,14 @@ import android.util.Log; import android.util.Pair; import android.view.View; import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import com.android.settings.R; Loading Loading @@ -97,6 +99,7 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont private static final int MAIN_DEVICE_ID = 4; private static final float HALF_ALPHA = 0.5f; PreferenceFragmentCompat mFragment; @VisibleForTesting LayoutPreference mLayoutPreference; @VisibleForTesting Loading Loading @@ -170,8 +173,11 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont mIconCache.clear(); } public void init(CachedBluetoothDevice cachedBluetoothDevice) { /** Initializes the controller. */ public void init( CachedBluetoothDevice cachedBluetoothDevice, PreferenceFragmentCompat fragment) { mCachedDevice = cachedBluetoothDevice; mFragment = fragment; } private void registerBluetoothDevice() { Loading Loading @@ -325,6 +331,14 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont MAIN_DEVICE_ID); } }); if (Flags.enableBluetoothDeviceDetailsPolish()) { ImageButton renameButton = mLayoutPreference.findViewById(R.id.rename_button); renameButton.setVisibility(View.VISIBLE); renameButton.setOnClickListener(view -> { RemoteDeviceNameDialogFragment.newInstance(mCachedDevice).show( mFragment.getFragmentManager(), RemoteDeviceNameDialogFragment.TAG); }); } } } Loading