Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2ed6d32 authored by Haijie Hong's avatar Haijie Hong
Browse files

Move rename button next to the device name

BUG: 343317785
Test: atest GeneralBluetoothDetailsHeaderControllerTest
Flag: com.android.settings.flags.enable_bluetooth_device_details_polish
Change-Id: I87f030ca48d3edac13759fe51499b7e400dbb795
parent f56a1bcc
Loading
Loading
Loading
Loading
+34 −7
Original line number Diff line number Diff line
@@ -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"
@@ -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"
+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>
+35 −7
Original line number Diff line number Diff line
@@ -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"
@@ -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"
+7 −0
Original line number Diff line number Diff line
@@ -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"
+15 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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
@@ -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() {
@@ -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