summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/dialpadview
diff options
context:
space:
mode:
authorlinyuh <linyuh@google.com>2017-10-31 10:29:45 -0700
committerzachh <zachh@google.com>2017-11-01 21:58:48 +0000
commitbd03600f8403816a1225bc8208da133896ab22b4 (patch)
treea90a38f8cafd7a1f5a2604eb3750976ca0c81cda /java/com/android/dialer/dialpadview
parent1d1ac5b5a783e06ecda0adceda7df0af8a5566bc (diff)
Use DialpadTextView instead of TextView to show letters under each digit key.
Bug: 30215380 Test: Manual PiperOrigin-RevId: 174055180 Change-Id: Iac6deb8f9dcb6f3e9da6dfd0d732f29cc34bb7f6
Diffstat (limited to 'java/com/android/dialer/dialpadview')
-rw-r--r--java/com/android/dialer/dialpadview/DialpadTextView.java4
-rw-r--r--java/com/android/dialer/dialpadview/DialpadView.java17
-rw-r--r--java/com/android/dialer/dialpadview/res/layout-land/dialpad_key.xml2
-rw-r--r--java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_zero.xml48
-rw-r--r--java/com/android/dialer/dialpadview/res/layout/dialpad.xml100
-rw-r--r--java/com/android/dialer/dialpadview/res/layout/dialpad_key.xml2
-rw-r--r--java/com/android/dialer/dialpadview/res/layout/dialpad_key_zero.xml34
-rw-r--r--java/com/android/dialer/dialpadview/res/values-land/styles.xml4
-rw-r--r--java/com/android/dialer/dialpadview/res/values/attrs.xml1
-rw-r--r--java/com/android/dialer/dialpadview/res/values/dimens.xml2
-rw-r--r--java/com/android/dialer/dialpadview/res/values/styles.xml13
11 files changed, 69 insertions, 158 deletions
diff --git a/java/com/android/dialer/dialpadview/DialpadTextView.java b/java/com/android/dialer/dialpadview/DialpadTextView.java
index 5b1b7bb5d..b1eee4b9c 100644
--- a/java/com/android/dialer/dialpadview/DialpadTextView.java
+++ b/java/com/android/dialer/dialpadview/DialpadTextView.java
@@ -24,8 +24,8 @@ import android.util.AttributeSet;
import android.widget.TextView;
/**
- * This is a custom text view intended only for rendering the numerals (and star and pound) on the
- * dialpad. TextView has built in top/bottom padding to help account for ascenders/descenders.
+ * This is a custom text view intended for rendering text on the dialpad. TextView has built-in
+ * top/bottom padding to help account for ascenders/descenders.
*
* <p>Since vertical space is at a premium on the dialpad, particularly if the font size is scaled
* to a larger default, for the dialpad we use this class to more precisely render characters
diff --git a/java/com/android/dialer/dialpadview/DialpadView.java b/java/com/android/dialer/dialpadview/DialpadView.java
index d70b0a6c2..5e79cb59f 100644
--- a/java/com/android/dialer/dialpadview/DialpadView.java
+++ b/java/com/android/dialer/dialpadview/DialpadView.java
@@ -223,29 +223,32 @@ public class DialpadView extends LinearLayout {
if (mIsLandscape) {
adjustKeyWidths();
} else {
- adjustKeyHeightsInFirstRow();
+ adjustDigitKeyHeights();
}
}
}
/**
- * Adjust key heights in the first row.
+ * Make the heights of all digit keys the same.
*
- * <p>A voice mail icon is shown under key "1", which makes its height different from other keys
- * in the first row.
+ * <p>When the device is in portrait mode, we first find the maximum height among digit key
+ * layouts. Then for each key, we adjust the height of the layout containing letters/the voice
+ * mail icon to ensure the height of each digit key is the same.
*
* <p>This method should be called after the sizes of related layouts have been calculated by the
* framework.
*/
- private void adjustKeyHeightsInFirstRow() {
+ private void adjustDigitKeyHeights() {
+ Assert.checkState(!mIsLandscape);
+
int maxHeight = 0;
- for (int i = 1; i <= 3; i++) {
+ for (int i = 0; i <= 9; i++) {
DialpadKeyButton dialpadKey = (DialpadKeyButton) findViewById(BUTTON_IDS[i]);
LinearLayout keyLayout = (LinearLayout) dialpadKey.findViewById(R.id.dialpad_key_layout);
maxHeight = Math.max(maxHeight, keyLayout.getHeight());
}
- for (int i = 1; i <= 3; i++) {
+ for (int i = 0; i <= 9; i++) {
DialpadKeyButton dialpadKey = (DialpadKeyButton) findViewById(BUTTON_IDS[i]);
LinearLayout keyLayout = (LinearLayout) dialpadKey.findViewById(R.id.dialpad_key_layout);
diff --git a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key.xml b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key.xml
index 12f24ac52..769e2d8bb 100644
--- a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key.xml
+++ b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key.xml
@@ -39,7 +39,7 @@
android:id="@+id/dialpad_key_icon_or_letters_layout"
style="@style/DialpadKeyInternalLayoutStyle">
- <TextView
+ <com.android.dialer.dialpadview.DialpadTextView
android:id="@+id/dialpad_key_letters"
style="@style/DialpadKeyLettersStyle"/>
</LinearLayout>
diff --git a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_zero.xml b/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_zero.xml
deleted file mode 100644
index 714507202..000000000
--- a/java/com/android/dialer/dialpadview/res/layout-land/dialpad_key_zero.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?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.
--->
-
-<!-- A layout representing key "0" in the dialpad -->
-<com.android.dialer.dialpadview.DialpadKeyButton
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/zero"
- style="@style/DialpadKeyButtonStyle">
-
- <LinearLayout
- android:id="@+id/dialpad_key_layout"
- style="@style/DialpadKeyInternalLayoutStyle"
- android:layout_gravity="right|center_vertical"
- android:baselineAligned="false"
- android:orientation="horizontal">
-
- <FrameLayout
- android:layout_width="@dimen/dialpad_key_number_width"
- android:layout_height="wrap_content"
- android:layout_marginRight="@dimen/dialpad_key_margin_right">
- <com.android.dialer.dialpadview.DialpadTextView
- android:id="@+id/dialpad_key_number"
- style="@style/DialpadBottomKeyNumberStyle"/>
- </FrameLayout>
-
- <TextView
- android:id="@+id/dialpad_key_letters"
- style="@style/DialpadKeyLettersStyle"/>
- <!-- A placeholder to make the width the same as other keys. -->
- <View
- android:id="@+id/dialpad_key_horizontal_placeholder"
- android:layout_width="0dp"
- android:layout_height="match_parent"/>
- </LinearLayout>
-</com.android.dialer.dialpadview.DialpadKeyButton>
diff --git a/java/com/android/dialer/dialpadview/res/layout/dialpad.xml b/java/com/android/dialer/dialpadview/res/layout/dialpad.xml
index 5a14d14ea..0061d5497 100644
--- a/java/com/android/dialer/dialpadview/res/layout/dialpad.xml
+++ b/java/com/android/dialer/dialpadview/res/layout/dialpad.xml
@@ -16,84 +16,86 @@
<!-- Dialpad in the Phone app. -->
<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/dialpad"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:clipChildren="false"
- android:orientation="vertical">
- <LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/dialpad"
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"
- android:orientation="horizontal">
+ android:layout_height="match_parent"
+ android:clipChildren="false"
+ android:orientation="vertical">
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
<Space style="@style/DialpadSpaceStyle"/>
<include layout="@layout/dialpad_key_one"/>
<include
- android:id="@+id/two"
- style="@style/DialpadKeyButtonStyle"
- layout="@layout/dialpad_key"/>
+ android:id="@+id/two"
+ style="@style/DialpadKeyButtonStyle"
+ layout="@layout/dialpad_key"/>
<include
- android:id="@+id/three"
- style="@style/DialpadKeyButtonStyle"
- layout="@layout/dialpad_key"/>
+ android:id="@+id/three"
+ style="@style/DialpadKeyButtonStyle"
+ layout="@layout/dialpad_key"/>
<Space style="@style/DialpadSpaceStyle"/>
</LinearLayout>
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"
- android:orientation="horizontal">
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
<Space style="@style/DialpadSpaceStyle"/>
<include
- android:id="@+id/four"
- style="@style/DialpadKeyButtonStyle"
- layout="@layout/dialpad_key"/>
+ android:id="@+id/four"
+ style="@style/DialpadKeyButtonStyle"
+ layout="@layout/dialpad_key"/>
<include
- android:id="@+id/five"
- style="@style/DialpadKeyButtonStyle"
- layout="@layout/dialpad_key"/>
+ android:id="@+id/five"
+ style="@style/DialpadKeyButtonStyle"
+ layout="@layout/dialpad_key"/>
<include
- android:id="@+id/six"
- style="@style/DialpadKeyButtonStyle"
- layout="@layout/dialpad_key"/>
+ android:id="@+id/six"
+ style="@style/DialpadKeyButtonStyle"
+ layout="@layout/dialpad_key"/>
<Space style="@style/DialpadSpaceStyle"/>
</LinearLayout>
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"
- android:orientation="horizontal">
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
<Space style="@style/DialpadSpaceStyle"/>
<include
- android:id="@+id/seven"
- style="@style/DialpadKeyButtonStyle"
- layout="@layout/dialpad_key"/>
+ android:id="@+id/seven"
+ style="@style/DialpadKeyButtonStyle"
+ layout="@layout/dialpad_key"/>
<include
- android:id="@+id/eight"
- style="@style/DialpadKeyButtonStyle"
- layout="@layout/dialpad_key"/>
+ android:id="@+id/eight"
+ style="@style/DialpadKeyButtonStyle"
+ layout="@layout/dialpad_key"/>
<include
- android:id="@+id/nine"
- style="@style/DialpadKeyButtonStyle"
- layout="@layout/dialpad_key"/>
+ android:id="@+id/nine"
+ style="@style/DialpadKeyButtonStyle"
+ layout="@layout/dialpad_key"/>
<Space style="@style/DialpadSpaceStyle"/>
</LinearLayout>
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"
- android:orientation="horizontal">
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
<Space style="@style/DialpadSpaceStyle"/>
<include layout="@layout/dialpad_key_star"/>
- <include layout="@layout/dialpad_key_zero"/>
+ <include
+ android:id="@+id/zero"
+ layout="@layout/dialpad_key"/>
<include layout="@layout/dialpad_key_pound"/>
<Space style="@style/DialpadSpaceStyle"/>
</LinearLayout>
<Space
- android:layout_width="match_parent"
- android:layout_height="?attr/dialpad_end_key_spacing"/>
+ android:layout_width="match_parent"
+ android:layout_height="?attr/dialpad_end_key_spacing"/>
</LinearLayout>
diff --git a/java/com/android/dialer/dialpadview/res/layout/dialpad_key.xml b/java/com/android/dialer/dialpadview/res/layout/dialpad_key.xml
index 6c87cd2b4..bb9ec63f6 100644
--- a/java/com/android/dialer/dialpadview/res/layout/dialpad_key.xml
+++ b/java/com/android/dialer/dialpadview/res/layout/dialpad_key.xml
@@ -31,7 +31,7 @@
android:id="@+id/dialpad_key_icon_or_letters_layout"
style="@style/DialpadKeyInternalLayoutStyle">
- <TextView
+ <com.android.dialer.dialpadview.DialpadTextView
android:id="@+id/dialpad_key_letters"
style="@style/DialpadKeyLettersStyle"/>
</LinearLayout>
diff --git a/java/com/android/dialer/dialpadview/res/layout/dialpad_key_zero.xml b/java/com/android/dialer/dialpadview/res/layout/dialpad_key_zero.xml
deleted file mode 100644
index 8d9c7b216..000000000
--- a/java/com/android/dialer/dialpadview/res/layout/dialpad_key_zero.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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.
--->
-
-<!-- A layout representing key "0" in the dialpad -->
-<com.android.dialer.dialpadview.DialpadKeyButton
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/zero"
- style="@style/DialpadKeyButtonStyle">
-
- <LinearLayout
- android:id="@+id/dialpad_key_layout"
- style="@style/DialpadKeyInternalLayoutStyle">
-
- <com.android.dialer.dialpadview.DialpadTextView
- android:id="@+id/dialpad_key_number"
- style="@style/DialpadBottomKeyNumberStyle"/>
- <TextView
- android:id="@+id/dialpad_key_letters"
- style="@style/DialpadKeyLettersStyle"/>
- </LinearLayout>
-</com.android.dialer.dialpadview.DialpadKeyButton>
diff --git a/java/com/android/dialer/dialpadview/res/values-land/styles.xml b/java/com/android/dialer/dialpadview/res/values-land/styles.xml
index 012cfa2b2..de9ef1fbf 100644
--- a/java/com/android/dialer/dialpadview/res/values-land/styles.xml
+++ b/java/com/android/dialer/dialpadview/res/values-land/styles.xml
@@ -37,8 +37,6 @@
<item name="android:layout_gravity">center</item>
</style>
- <style name="DialpadBottomKeyNumberStyle" parent="DialpadKeyNumberStyle"/>
-
<style name="DialpadKeyPoundStyle">
<item name="android:textColor">?attr/dialpad_text_color_secondary</item>
<item name="android:textSize">@dimen/dialpad_key_pound_size</item>
@@ -56,6 +54,6 @@
<item name="android:fontFamily">sans-serif-regular</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
- <item name="android:gravity">left</item>
+ <item name="android:layout_gravity">left|center_vertical</item>
</style>
</resources>
diff --git a/java/com/android/dialer/dialpadview/res/values/attrs.xml b/java/com/android/dialer/dialpadview/res/values/attrs.xml
index d73946e65..972263883 100644
--- a/java/com/android/dialer/dialpadview/res/values/attrs.xml
+++ b/java/com/android/dialer/dialpadview/res/values/attrs.xml
@@ -25,7 +25,6 @@
<attr format="dimension" name="dialpad_digits_adjustable_height"/>
<attr format="dimension" name="dialpad_key_numbers_size"/>
<attr format="dimension" name="dialpad_key_number_margin_bottom"/>
- <attr format="dimension" name="dialpad_zero_key_number_margin_bottom"/>
</declare-styleable>
<declare-styleable name="Theme.Dialpad">
diff --git a/java/com/android/dialer/dialpadview/res/values/dimens.xml b/java/com/android/dialer/dialpadview/res/values/dimens.xml
index 1e5880a3e..797d7e839 100644
--- a/java/com/android/dialer/dialpadview/res/values/dimens.xml
+++ b/java/com/android/dialer/dialpadview/res/values/dimens.xml
@@ -22,8 +22,6 @@
<dimen name="dialpad_key_star_size">36sp</dimen>
<dimen name="dialpad_key_height">64dp</dimen>
<dimen name="dialpad_key_number_default_margin_bottom">3dp</dimen>
- <!-- Zero key should have less space between self and text because "+" is smaller -->
- <dimen name="dialpad_zero_key_number_default_margin_bottom">1dp</dimen>
<dimen name="dialpad_symbol_margin_bottom">13dp</dimen>
<dimen name="dialpad_digits_text_size">34sp</dimen>
<dimen name="dialpad_digits_text_min_size">24sp</dimen>
diff --git a/java/com/android/dialer/dialpadview/res/values/styles.xml b/java/com/android/dialer/dialpadview/res/values/styles.xml
index 9d30021b9..653fe484f 100644
--- a/java/com/android/dialer/dialpadview/res/values/styles.xml
+++ b/java/com/android/dialer/dialpadview/res/values/styles.xml
@@ -32,10 +32,6 @@
<item name="android:gravity">center</item>
</style>
- <style name="DialpadBottomKeyNumberStyle" parent="DialpadKeyNumberStyle">
- <item name="android:layout_marginBottom">?attr/dialpad_zero_key_number_margin_bottom</item>
- </style>
-
<style name="DialpadKeyStarStyle">
<item name="android:textColor">?attr/dialpad_text_color_secondary</item>
<item name="android:textSize">@dimen/dialpad_key_star_size</item>
@@ -44,7 +40,7 @@
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginBottom">@dimen/dialpad_symbol_margin_bottom</item>
- <item name="android:gravity">center</item>
+ <item name="android:layout_gravity">center</item>
</style>
<style name="DialpadKeyPoundStyle">
@@ -55,7 +51,7 @@
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginBottom">@dimen/dialpad_symbol_margin_bottom</item>
- <item name="android:gravity">center</item>
+ <item name="android:layout_gravity">center</item>
</style>
<style name="DialpadKeyLettersStyle">
@@ -64,7 +60,7 @@
<item name="android:fontFamily">sans-serif-regular</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
- <item name="android:gravity">center_horizontal</item>
+ <item name="android:layout_gravity">center</item>
</style>
<style name="DialpadKeyButtonStyle">
@@ -92,9 +88,6 @@
<item name="dialpad_key_numbers_size">@dimen/dialpad_key_numbers_default_size</item>
<item name="dialpad_key_number_margin_bottom">@dimen/dialpad_key_number_default_margin_bottom
</item>
- <item name="dialpad_zero_key_number_margin_bottom">
- @dimen/dialpad_zero_key_number_default_margin_bottom
- </item>
<item name="dialpad_end_key_spacing">@dimen/dialpad_bottom_space_height</item>
<item name="dialpad_elevation">0dp</item>
</style>