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

Commit 782fcb9b authored by Becca Hughes's avatar Becca Hughes
Browse files

Add buttons for new settings design

This adds a new class called PrimaryProviderPreference
which is responsible for laying out the old cog view if
the feature is disabled and the new button view if it
is enabled.

Screenshots:
https://hsv.googleplex.com/5109836204212224
https://hsv.googleplex.com/5574754636398592
https://hsv.googleplex.com/6737135727017984

Change-Id: I1ad0c59a4afc5be3694b499f66bbd7306dfbee69
Test: Manual test with flag on + off & unit tests
Bug: 300979487
parent 306df3be
Loading
Loading
Loading
Loading
+127 −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.
  -->

<!-- Based off preference_single_target.xml with buttons added below text. -->
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:settings="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:gravity="center_vertical"
    android:orientation="vertical"
    android:background="?android:attr/selectableItemBackground"
    android:clipToPadding="false">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:gravity="start|center_vertical"
        android:clipToPadding="false"
        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">

        <LinearLayout
            android:id="@+id/icon_frame"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="start|center_vertical"
            android:minWidth="56dp"
            android:orientation="horizontal"
            android:clipToPadding="false"
            android:paddingTop="4dp"
            android:paddingBottom="4dp">
            <androidx.preference.internal.PreferenceImageView
                android:id="@android:id/icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                settings:maxWidth="48dp"
                settings:maxHeight="48dp" />
        </LinearLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:paddingTop="16dp"
            android:paddingBottom="16dp">

            <TextView
                android:id="@android:id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:textAppearance="?android:attr/textAppearanceListItem"
                android:ellipsize="marquee" />

            <TextView
                android:id="@android:id/summary"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@android:id/title"
                android:layout_alignStart="@android:id/title"
                android:textAppearance="?android:attr/textAppearanceListItemSecondary"
                android:textColor="?android:attr/textColorSecondary"
                android:hyphenationFrequency="normalFast"
                android:lineBreakWordStyle="phrase"
                android:maxLines="10" />

        </RelativeLayout>

    </LinearLayout>

    <!-- Preference should place its actual preference widget here. -->
    <LinearLayout
        android:id="@android:id/widget_frame"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:minWidth="@dimen/two_target_min_width"
        android:gravity="center"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@+id/credman_button_frame"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="start|center_vertical"
        android:minWidth="56dp"
        android:orientation="horizontal"
        android:clipToPadding="false"
        android:paddingTop="4dp"
        android:paddingLeft="80dp"
        android:paddingBottom="4dp">

            <Button
                android:id="@+id/change_button"
                android:layout_width="match_parent"
                style="@style/CredentialManagerChangeButton"
                android:layout_height="wrap_content"
                android:text="@string/credman_button_change"/>

            <Button
                android:id="@+id/open_button"
                style="@style/CredentialManagerOpenButton"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:text="@string/credman_button_open"/>

    </LinearLayout>

</LinearLayout>
 No newline at end of file
+6 −2
Original line number Diff line number Diff line
@@ -10739,7 +10739,7 @@
    <!-- Preference category for showing auto-fill services with saved passwords. [CHAR LIMIT=60] -->
    <string name="autofill_passwords">Passwords</string>
    <!-- Preference category for showing autofill and credman services with saved credentials. [CHAR LIMIT=60] -->
    <string name="credman_chosen_app_title">Passwords, passkeys, and data services</string>
    <string name="credman_chosen_app_title">Preferred service</string>
    <!-- Preference category for showing additional credential providers. [CHAR LIMIT=60] -->
    <string name="credman_credentials">Additional providers</string>
    <!-- Summary for passwords settings that shows how many passwords are saved for each autofill
@@ -10757,6 +10757,10 @@
    <string name="credman_keywords">data, passkey, password</string>
    <!-- Keywords for the credman feature. [CHAR LIMIT=NONE] -->
    <string name="credman_autofill_keywords">auto, fill, autofill, data, passkey, password</string>
    <!-- Button for choosing credman service. [CHAR LIMIT=40] -->
    <string name="credman_button_change">Change</string>
    <!-- Button for opening credman service settings. [CHAR LIMIT=40] -->
    <string name="credman_button_open">Open</string>
    <!-- Message of the warning dialog for setting the auto-fill app. [CHAR_LIMIT=NONE] -->
    <string name="autofill_confirmation_message">
+18 −0
Original line number Diff line number Diff line
@@ -989,4 +989,22 @@
        <item name="android:layout_alignParentTop">true</item>
    </style>

    <style name="CredentialManagerChangeButton" parent="@style/ActionPrimaryButton">
        <item name="android:fontFamily">google-sans-medium</item>
        <item name="android:textSize">14sp</item>
        <item name="android:textAllCaps">false</item>
        <item name="android:singleLine">true</item>
        <item name="android:paddingHorizontal">24dp</item>
    </style>

    <style name="CredentialManagerOpenButton"
        parent="@style/Widget.AppCompat.Button">
        <item name="android:theme">@style/RoundedCornerThemeOverlay</item>
        <item name="android:fontFamily">google-sans-medium</item>
        <item name="android:textSize">14sp</item>
        <item name="android:textAllCaps">false</item>
        <item name="android:singleLine">true</item>
        <item name="android:background">@null</item>
    </style>

</resources>
+2 −3
Original line number Diff line number Diff line
@@ -26,15 +26,14 @@
        android:order="10"
        android:title="@string/credman_chosen_app_title">

        <com.android.settings.widget.GearPreference
            android:fragment="com.android.settings.applications.credentials.DefaultCombinedPicker"
        <com.android.settings.applications.credentials.PrimaryProviderPreference
            android:key="default_credman_autofill_main"
            android:title="@string/credman_chosen_app_title"
            settings:keywords="@string/credman_autofill_keywords">
            <extra
                android:name="for_work"
                android:value="false" />
        </com.android.settings.widget.GearPreference>
        </com.android.settings.applications.credentials.PrimaryProviderPreference>
    </PreferenceCategory>

    <PreferenceCategory
+2 −3
Original line number Diff line number Diff line
@@ -27,15 +27,14 @@
        android:order="10"
        android:title="@string/credman_chosen_app_title">

        <com.android.settings.widget.GearPreference
            android:fragment="com.android.settings.applications.credentials.DefaultCombinedPicker"
        <com.android.settings.applications.credentials.PrimaryProviderPreference
            android:key="default_credman_autofill_main"
            android:title="@string/credman_chosen_app_title"
            settings:keywords="@string/credman_autofill_keywords">
            <extra
                android:name="for_work"
                android:value="false" />
        </com.android.settings.widget.GearPreference>
        </com.android.settings.applications.credentials.PrimaryProviderPreference>
    </PreferenceCategory>

    <PreferenceCategory
Loading