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

Commit 2df5a0b3 authored by John Li's avatar John Li
Browse files

Move these radio buttons to the left

Assign new single layout to RadioButtonPreference for w/ or w/o icon
and call setIconSpaceReserved(false) in RadioButtonPreference's
constructor. In case of having icon, calling setIcon() can make
icon_frame visible.

Bug: 70850017
Test: m -j56 SettingsRoboTests RunSettingsRoboTests
Change-Id: I8b35f75b6d8114a5e4c69ec1a3287c55e764ffe0
parent 85c34077
Loading
Loading
Loading
Loading
+104 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2018 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.
-->
<!-- This file is copied from preference_app.xml with modification to
     support widget on the opposite side horizontally -->
<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:background="?android:attr/selectableItemBackground"
    android:gravity="center_vertical"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">

    <LinearLayout
        android:id="@android:id/widget_frame"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="center"
        android:minWidth="56dp"
        android:layout_marginEnd="16dp"
        android:orientation="vertical" />

    <LinearLayout
        android:id="@+id/icon_frame"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:minWidth="32dp"
        android:orientation="horizontal"
        android:layout_marginEnd="16dp"
        android:paddingTop="4dp"
        android:paddingBottom="4dp">
        <android.support.v7.internal.widget.PreferenceImageView
            android:id="@android:id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            settings:maxWidth="@dimen/secondary_app_icon_size"
            settings:maxHeight="@dimen/secondary_app_icon_size" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        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="@style/TextAppearance.TileTitle"
                  android:ellipsize="marquee"
                  android:fadingEdge="horizontal" />

        <LinearLayout
            android:id="@+id/summary_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone">
            <TextView android:id="@android:id/summary"
                      android:layout_width="0dp"
                      android:layout_height="wrap_content"
                      android:layout_weight="1"
                      android:textAppearance="@style/TextAppearance.Small"
                      android:textAlignment="viewStart"
                      android:textColor="?android:attr/textColorSecondary" />

            <TextView android:id="@+id/appendix"
                      android:layout_width="0dp"
                      android:layout_height="wrap_content"
                      android:layout_weight="1"
                      android:textAppearance="@style/TextAppearance.Small"
                      android:textAlignment="viewEnd"
                      android:textColor="?android:attr/textColorSecondary"
                      android:maxLines="1"
                      android:ellipsize="end" />
        </LinearLayout>
        <ProgressBar
            android:id="@android:id/progress"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:max="100"
            android:visibility="gone" />
    </LinearLayout>

</LinearLayout>
+0 −5
Original line number Diff line number Diff line
@@ -86,11 +86,6 @@ public abstract class DefaultAppPickerFragment extends RadioButtonPickerFragment
        }
    }

    @Override
    protected int getRadioButtonPreferenceCustomLayoutResId() {
        return R.layout.preference_app;
    }

    protected ConfirmationDialogFragment newConfirmationDialogFragment(String selectedKey,
            CharSequence confirmationMessage) {
        final ConfirmationDialogFragment fragment = new ConfirmationDialogFragment();
+2 −0
Original line number Diff line number Diff line
@@ -47,6 +47,8 @@ public class RadioButtonPreference extends CheckBoxPreference {
    public RadioButtonPreference(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setWidgetLayoutResource(R.layout.preference_widget_radiobutton);
        setLayoutResource(R.layout.preference_radio);
        setIconSpaceReserved(false);
    }

    public RadioButtonPreference(Context context, AttributeSet attrs) {
+0 −8
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.settings.applications.defaultapps;

import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;
@@ -31,7 +30,6 @@ import android.support.v7.preference.PreferenceScreen;
import android.util.Pair;

import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.widget.RadioButtonPreference;
@@ -96,12 +94,6 @@ public class DefaultAppPickerFragmentTest {
                any(Pair.class));
    }

    @Test
    public void shouldHaveAppPreferenceLayout() {
        assertThat(mFragment.getRadioButtonPreferenceCustomLayoutResId())
                .isEqualTo(R.layout.preference_app);
    }

    public static class TestFragment extends DefaultAppPickerFragment {

        boolean setDefaultAppKeyCalled;
+11 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settings.widget;

import static com.google.common.truth.Truth.assertThat;
import static junit.framework.Assert.assertEquals;

import static org.mockito.Mockito.mock;
@@ -45,6 +46,16 @@ public class RadioButtonPreferenceTest {
        mPreference = new RadioButtonPreference(mContext);
    }

    @Test
    public void shouldHaveRadioPreferenceLayout() {
        assertThat(mPreference.getLayoutResource()).isEqualTo(R.layout.preference_radio);
    }

    @Test
    public void iconSpaceReservedShouldBeFalse() {
        assertThat(mPreference.isIconSpaceReserved()).isFalse();
    }

    @Test
    public void summary_containerShouldBeVisible() {
        mPreference.setSummary("some summary");