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

Commit 4459516a authored by Justin Klaassen's avatar Justin Klaassen
Browse files

Polish display and evaluate animation

Bug: 20915670
Bug: 21489377

- Adjust font metrics across all supported device configurations to
  support font scaling and min touch size requirements.
- Support proper font scaling for non-scrollable results when performing
  the evaluate animation.
- Remove restriction for only using 4/5 of the width of the result
  display (NOTE: the result's textSize must match the formula's
  minTextSize).
- Add AlignedTextView base class to ensure formula/result padding is
  based on the displayed text's ascent/baseline.

Change-Id: Id53e9bdc6e699fb05fdf331a6a472ecc170edf38
parent 721ec842
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -51,10 +51,6 @@
        android:textColor="@color/display_formula_text_color"
        android:textIsSelectable="false" />

    <!--
      We lay the result out to full width, but are careful to use only
      4/5 of the space, so that we have room when we expand.
      -->
    <com.android.calculator2.CalculatorResult
        android:id="@+id/result"
        style="@style/DisplayTextStyle.Result"
+8 −17
Original line number Diff line number Diff line
@@ -19,26 +19,22 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="DisplayTextStyle.Formula">
        <item name="android:paddingTop">0dip</item>
        <item name="android:paddingBottom">12dip</item>
        <item name="android:paddingStart">32dip</item>
        <item name="android:paddingEnd">32dip</item>
        <item name="android:textSize">30sp</item>
        <item name="android:paddingTop">2dip</item>
        <item name="android:paddingBottom">6dip</item>
        <item name="android:paddingStart">36dip</item>
        <item name="android:paddingEnd">36dip</item>
        <item name="android:textSize">28sp</item>
    </style>

    <style name="DisplayTextStyle.Result">
        <item name="android:paddingTop">0dip</item>
        <item name="android:paddingTop">6dip</item>
        <item name="android:paddingBottom">12dip</item>
        <item name="android:paddingStart">32dip</item>
        <item name="android:paddingEnd">32dip</item>
        <item name="android:paddingStart">36dip</item>
        <item name="android:paddingEnd">36dip</item>
        <item name="android:textSize">28sp</item>
    </style>

    <style name="PadButtonStyle.Advanced">
        <item name="android:layout_marginTop">4dip</item>
        <item name="android:layout_marginBottom">4dip</item>
        <item name="android:layout_marginStart">8dip</item>
        <item name="android:layout_marginEnd">8dip</item>
        <item name="android:background">@drawable/pad_button_advanced_background</item>
        <item name="android:textColor">@color/pad_button_advanced_text_color</item>
        <item name="android:textSize">15sp</item>
@@ -50,7 +46,6 @@
    </style>

    <style name="PadButtonStyle.Numeric">
        <item name="android:layout_margin">4dip</item>
        <item name="android:textSize">23sp</item>
    </style>

@@ -59,10 +54,6 @@
    </style>

    <style name="PadButtonStyle.Operator">
        <item name="android:layout_marginTop">4dip</item>
        <item name="android:layout_marginBottom">4dip</item>
        <item name="android:layout_marginStart">8dip</item>
        <item name="android:layout_marginEnd">8dip</item>
        <item name="android:textSize">20sp</item>
    </style>

+3 −6
Original line number Diff line number Diff line
@@ -23,8 +23,8 @@
        <item name="android:paddingBottom">24dip</item>
        <item name="android:paddingStart">16dip</item>
        <item name="android:paddingEnd">16dip</item>
        <item name="minTextSize">36sp</item>
        <item name="maxTextSize">64sp</item>
        <item name="minTextSize">32sp</item>
        <item name="maxTextSize">56sp</item>
        <item name="stepTextSize">8sp</item>
    </style>

@@ -33,11 +33,10 @@
        <item name="android:paddingBottom">32dip</item>
        <item name="android:paddingStart">16dip</item>
        <item name="android:paddingEnd">16dip</item>
        <item name="android:textSize">28sp</item>
        <item name="android:textSize">32sp</item>
    </style>

    <style name="PadButtonStyle.Advanced">
        <item name="android:layout_margin">4dip</item>
        <item name="android:background">@drawable/pad_button_advanced_background</item>
        <item name="android:textColor">@color/pad_button_advanced_text_color</item>
        <item name="android:textSize">20sp</item>
@@ -49,7 +48,6 @@
    </style>

    <style name="PadButtonStyle.Numeric">
        <item name="android:layout_margin">4dip</item>
        <item name="android:textSize">32sp</item>
    </style>

@@ -58,7 +56,6 @@
    </style>

    <style name="PadButtonStyle.Operator">
        <item name="android:layout_margin">8dip</item>
        <item name="android:textSize">23sp</item>
    </style>

+61 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright (C) 2014 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.
  -->

<!-- Styles for landscape phone (e.g. Nexus 4/5). -->
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="DisplayTextStyle.Formula">
        <item name="android:paddingTop">2dip</item>
        <item name="android:paddingBottom">10dip</item>
        <item name="android:paddingStart">36dip</item>
        <item name="android:paddingEnd">36dip</item>
        <item name="android:textSize">36sp</item>
    </style>

    <style name="DisplayTextStyle.Result">
        <item name="android:paddingTop">8dip</item>
        <item name="android:paddingBottom">18dip</item>
        <item name="android:paddingStart">36dip</item>
        <item name="android:paddingEnd">36dip</item>
        <item name="android:textSize">36sp</item>
    </style>

    <style name="PadButtonStyle.Advanced">
        <item name="android:background">@drawable/pad_button_advanced_background</item>
        <item name="android:textColor">@color/pad_button_advanced_text_color</item>
        <item name="android:textSize">17sp</item>
    </style>

    <style name="PadButtonStyle.Advanced.Text">
        <item name="android:textAllCaps">true</item>
        <item name="android:textSize">15sp</item>
    </style>

    <style name="PadButtonStyle.Numeric">
        <item name="android:textSize">27sp</item>
    </style>

    <style name="PadButtonStyle.Operator">
        <item name="android:textSize">24sp</item>
    </style>

    <style name="PadButtonStyle.Operator.Text">
        <item name="android:textAllCaps">true</item>
        <item name="android:textSize">15sp</item>
    </style>

</resources>
+63 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright (C) 2014 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.
  -->

<!-- Styles for portrait phone (e.g. Nexus 4/5). -->
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="DisplayTextStyle.Formula">
        <item name="android:paddingTop">16dip</item>
        <item name="android:paddingBottom">28dip</item>
        <item name="android:paddingStart">16dip</item>
        <item name="android:paddingEnd">16dip</item>
        <item name="minTextSize">42sp</item>
        <item name="maxTextSize">74sp</item>
        <item name="stepTextSize">8sp</item>
    </style>

    <style name="DisplayTextStyle.Result">
        <item name="android:paddingTop">16dip</item>
        <item name="android:paddingBottom">42dip</item>
        <item name="android:paddingStart">16dip</item>
        <item name="android:paddingEnd">16dip</item>
        <item name="android:textSize">42sp</item>
    </style>

    <style name="PadButtonStyle.Advanced">
        <item name="android:background">@drawable/pad_button_advanced_background</item>
        <item name="android:textColor">@color/pad_button_advanced_text_color</item>
        <item name="android:textSize">23sp</item>
    </style>

    <style name="PadButtonStyle.Advanced.Text">
        <item name="android:textAllCaps">true</item>
        <item name="android:textSize">20sp</item>
    </style>

    <style name="PadButtonStyle.Numeric">
        <item name="android:textSize">36sp</item>
    </style>

    <style name="PadButtonStyle.Operator">
        <item name="android:textSize">27sp</item>
    </style>

    <style name="PadButtonStyle.Operator.Text">
        <item name="android:textAllCaps">true</item>
        <item name="android:textSize">20sp</item>
    </style>

</resources>
Loading