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

Commit 013b816a authored by Svetoslav's avatar Svetoslav
Browse files

Update the print dialog.

1. The print dialog was resizable and as a result when printers
   come and go its size changes which looks bad. The dialog is
   now trying to be maximally large limited by a max size or the
   screen - whichever is smaller. This required moving from
   GridLayout to several LinearLayouts since the former does not
   support distribution of empty space evently between the items
   in a row. Also we want all items in a column of inputs to be
   of equal size (the spinners specifically).

2. Added labeledBy attribute to associate a view with another one
   that serves as its label for accessibility purposes. We have
   lebelFor attribute but it is not useful in most layout files
   since it has to refer the auto-generated id of a view which
   usually appears later in the layout file, thus generating a
   compilation error. This was needed for the accessibility support
   of the print dialog.

bug:10631660

2. Disabling the spinners or the print button did not produce
   visual feedback leading to user frustration.

bug:10741907

Change-Id: I0c12eddabc4035bc7becd1b86c1f1b8fdcf4289c
parent 01fc0884
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -19178,7 +19178,7 @@ package android.print {
    field public static final android.print.PrintAttributes.MediaSize NA_LETTER;
    field public static final android.print.PrintAttributes.MediaSize NA_MONARCH;
    field public static final android.print.PrintAttributes.MediaSize NA_QUARTO;
    field public static final android.print.PrintAttributes.MediaSize NA_TBLOID;
    field public static final android.print.PrintAttributes.MediaSize NA_TABLOID;
    field public static final android.print.PrintAttributes.MediaSize OM_DAI_PA_KAI;
    field public static final android.print.PrintAttributes.MediaSize OM_JUURO_KU_KAI;
    field public static final android.print.PrintAttributes.MediaSize OM_PA_KAI;
@@ -31611,6 +31611,8 @@ package android.widget {
    ctor public NumberPicker(android.content.Context);
    ctor public NumberPicker(android.content.Context, android.util.AttributeSet);
    ctor public NumberPicker(android.content.Context, android.util.AttributeSet, int);
    method public int computeVerticalScrollOffset();
    method public int computeVerticalScrollRange();
    method public java.lang.String[] getDisplayedValues();
    method public int getMaxValue();
    method public int getMinValue();
+1 −1
Original line number Diff line number Diff line
@@ -391,7 +391,7 @@ public final class PrintAttributes implements Parcelable {
        public static final MediaSize NA_LEDGER =
                new MediaSize("NA_LEDGER", "android", R.string.mediaSize_na_ledger, 17000, 11000);
        /** North America Tabloid media size: 11" x 17" (279mm × 432mm) */
        public static final MediaSize NA_TBLOID =
        public static final MediaSize NA_TABLOID =
                new MediaSize("NA_TABLOID", "android",
                        R.string.mediaSize_na_tabloid, 11000, 17000);
        /** North America Index Card 3x5 media size: 3" x 5" (76mm x 127mm) */
+20 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 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.
-->

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_enabled="true" android:color="#333333" />
   <item android:color="#888888"/>
</selector>
 No newline at end of file
+2 −2
Original line number Diff line number Diff line
@@ -14,10 +14,10 @@
     limitations under the License.
-->

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<com.android.printspooler.PrintDialogFrame xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content_container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@color/container_background">
</FrameLayout>
</com.android.printspooler.PrintDialogFrame>
+171 −187
Original line number Diff line number Diff line
@@ -15,17 +15,16 @@
-->

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:scrollbars="vertical"
    android:background="@color/editable_background">

    <GridLayout
        android:layout_width="wrap_content"
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:columnCount="2">
        android:orientation="vertical">

        <!-- Destination -->

@@ -37,14 +36,34 @@
            android:layout_marginTop="24dip"
            android:layout_marginStart="24dip"
            android:layout_marginEnd="24dip"
            android:layout_row="0"
            android:layout_column="0"
            android:layout_columnSpan="2"
            android:minHeight="?android:attr/listPreferredItemHeightSmall">
        </Spinner>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:baselineAligned="false">

            <LinearLayout
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical">

                <!-- Copies -->

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dip"
                    android:layout_marginStart="36dip"
                    android:layout_marginEnd="6dip"
                    android:textAppearance="@style/PrintOptionTitleTextAppearance"
                    android:labelFor="@+id/copies_edittext"
                    android:text="@string/label_copies">
                </TextView>

                <view
                    class="com.android.printspooler.PrintJobConfigActivity$CustomEditText"
                    android:id="@+id/copies_edittext"
@@ -52,136 +71,121 @@
                    android:layout_height="wrap_content"
                    android:layout_marginStart="24dip"
                    android:layout_marginEnd="6dip"
            android:layout_row="2"
            android:layout_column="0"
            android:layout_gravity="bottom|fill_horizontal"
                    style="@style/PrintOptionEditTextStyle"
                    android:inputType="numberDecimal">
                </view>

                <!-- Color -->

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dip"
                    android:layout_marginStart="36dip"
                    android:layout_marginEnd="6dip"
            android:layout_row="1"
            android:layout_column="0"
            style="@style/PrintOptionTextViewStyle"
            android:labelFor="@id/copies_edittext"
            android:text="@string/label_copies">
                    android:textAppearance="@style/PrintOptionTitleTextAppearance"
                    android:labelFor="@+id/color_spinner"
                    android:text="@string/label_color">
                </TextView>

        <!-- Paper size -->

                <Spinner
            android:id="@+id/paper_size_spinner"
                    android:id="@+id/color_spinner"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
            android:layout_marginStart="6dip"
            android:layout_marginEnd="24dip"
            android:layout_row="2"
            android:layout_column="1"
            android:layout_gravity="fill_horizontal"
                    android:layout_marginStart="24dip"
                    android:layout_marginEnd="6dip"
                    style="@style/PrintOptionSpinnerStyle">
                </Spinner>

                <!-- Range options -->

                <TextView
                    android:id="@+id/range_options_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dip"
            android:layout_marginStart="18dip"
            android:layout_marginEnd="24dip"
            android:layout_row="1"
            android:layout_column="1"
            style="@style/PrintOptionTextViewStyle"
            android:labelFor="@id/paper_size_spinner"
            android:text="@string/label_paper_size">
                    android:layout_marginStart="36dip"
                    android:textAppearance="@style/PrintOptionTitleTextAppearance"
                    android:labelFor="@+id/range_options_spinner"
                    android:text="@string/label_pages">
                </TextView>

        <!-- Color -->

                <Spinner
            android:id="@+id/color_spinner"
                    android:id="@+id/range_options_spinner"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="24dip"
                    android:layout_marginEnd="6dip"
            android:layout_row="4"
            android:layout_column="0"
            android:layout_gravity="fill_horizontal"
                    style="@style/PrintOptionSpinnerStyle">
                </Spinner>

            </LinearLayout>

            <LinearLayout
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical">

                <!-- Paper size -->

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dip"
            android:layout_marginStart="36dip"
            android:layout_marginEnd="6dip"
            android:layout_row="3"
            android:layout_column="0"
            style="@style/PrintOptionTextViewStyle"
            android:labelFor="@id/color_spinner"
            android:text="@string/label_color">
                    android:layout_marginStart="18dip"
                    android:layout_marginEnd="24dip"
                    android:textAppearance="@style/PrintOptionTitleTextAppearance"
                    android:labelFor="@+id/paper_size_spinner"
                    android:text="@string/label_paper_size">
                </TextView>

        <!-- Orientation -->

                <Spinner
            android:id="@+id/orientation_spinner"
                    android:id="@+id/paper_size_spinner"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="6dip"
                    android:layout_marginEnd="24dip"
            android:layout_row="4"
            android:layout_column="1"
            android:layout_gravity="fill_horizontal"
                    style="@style/PrintOptionSpinnerStyle">
                </Spinner>

                <!-- Orientation -->

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dip"
                    android:layout_marginStart="18dip"
                    android:layout_marginEnd="24dip"
            android:layout_row="3"
            android:layout_column="1"
            style="@style/PrintOptionTextViewStyle"
            android:labelFor="@id/orientation_spinner"
                    android:textAppearance="@style/PrintOptionTitleTextAppearance"
                    android:labelFor="@+id/orientation_spinner"
                    android:text="@string/label_orientation">
                </TextView>

        <!-- Range options -->

                <Spinner
            android:id="@+id/range_options_spinner"
                    android:id="@+id/orientation_spinner"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
            android:layout_marginStart="24dip"
            android:layout_marginEnd="6dip"
            android:layout_row="6"
            android:layout_column="0"
            android:layout_gravity="fill_horizontal"
                    android:layout_marginStart="6dip"
                    android:layout_marginEnd="24dip"
                    style="@style/PrintOptionSpinnerStyle">
                </Spinner>

                <!-- Pages -->

               <TextView
            android:id="@+id/range_options_title"
                    android:id="@+id/page_range_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dip"
            android:layout_marginStart="36dip"
            android:layout_row="5"
            android:layout_column="0"
            style="@style/PrintOptionTextViewStyle"
            android:labelFor="@id/range_options_spinner"
            android:text="@string/label_pages">
                    android:layout_marginStart="12dip"
                    android:layout_marginEnd="24dip"
                    android:textAppearance="@style/PrintOptionTitleTextAppearance"
                    android:text="@string/pages_range_example"
                    android:labelFor="@+id/page_range_edittext"
                    android:textAllCaps="false">
                </TextView>

        <!-- Pages -->

                <view
                    class="com.android.printspooler.PrintJobConfigActivity$CustomEditText"
                    android:id="@+id/page_range_edittext"
@@ -189,38 +193,22 @@
                    android:layout_height="wrap_content"
                    android:layout_marginStart="6dip"
                    android:layout_marginEnd="24dip"
            android:layout_row="6"
            android:layout_column="1"
                    android:layout_gravity="bottom|fill_horizontal"
                    style="@style/PrintOptionEditTextStyle"
                    android:visibility="gone"
                    android:inputType="textNoSuggestions">
                </view>

       <TextView
            android:id="@+id/page_range_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="12dip"
            android:layout_marginStart="12dip"
            android:layout_marginEnd="24dip"
            android:layout_row="5"
            android:layout_column="1"
            style="@style/PrintOptionTextViewStyle"
            android:labelFor="@id/page_range_edittext"
            android:text="@string/pages_range_example"
            android:textAllCaps="false">
        </TextView>
            </LinearLayout>

        </LinearLayout>

        <!-- Print button -->

        <ImageView
            android:layout_width="wrap_content"
            android:layout_width="fill_parent"
            android:layout_height="1dip"
            android:layout_marginTop="24dip"
            android:layout_row="7"
            android:layout_column="0"
            android:layout_columnSpan="2"
            android:layout_gravity="fill_horizontal"
            android:background="@color/separator"
            android:contentDescription="@null">
@@ -229,18 +217,14 @@
        <Button
            android:id="@+id/print_button"
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="wrap_content"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="fill_horizontal"
            android:layout_row="8"
            android:layout_column="0"
            android:layout_columnSpan="2"
            android:text="@string/print_button"
            android:textSize="16sp"
            android:textColor="@color/important_text">
            android:textColor="@color/item_text_color">
        </Button>

    </GridLayout>
    </LinearLayout>

</ScrollView>
Loading