summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard MacGregor <rmacgregor@cyngn.com>2016-05-11 21:31:59 (GMT)
committerRichard MacGregor <rmacgregor@cyngn.com>2016-05-12 22:47:32 (GMT)
commitff0327931a1fdf2617559f7b0a7958c922dbfa30 (patch)
treec8d6f5258de9b0b023436d8ce636875af0d8ba3c
parentbdd80a256ef3fc9bf40a50ff61a1f610ac3dd62b (diff)
downloadandroid_packages_apps_PhoneCommon-ff0327931a1fdf2617559f7b0a7958c922dbfa30.zip
android_packages_apps_PhoneCommon-ff0327931a1fdf2617559f7b0a7958c922dbfa30.tar.gz
android_packages_apps_PhoneCommon-ff0327931a1fdf2617559f7b0a7958c922dbfa30.tar.bz2
[1/2] Credit text and action should be limited to single line
The credit text and action weren't limited to a single line, causing increased credit bar size if text was translated into another language. Ticket CD-631 & CD-637 Change-Id: I89c3725f5d7040299b90491a745eb96d93fb1db9
-rw-r--r--res/layout/dialpad_view_unthemed.xml52
-rw-r--r--res/values/cm_dimens.xml1
-rw-r--r--src/com/android/phone/common/widget/ResizingILDContainerLayout.java92
3 files changed, 113 insertions, 32 deletions
diff --git a/res/layout/dialpad_view_unthemed.xml b/res/layout/dialpad_view_unthemed.xml
index 3ac2f55..7624d07 100644
--- a/res/layout/dialpad_view_unthemed.xml
+++ b/res/layout/dialpad_view_unthemed.xml
@@ -33,51 +33,39 @@
android:orientation="vertical"
android:visibility="gone">
- <LinearLayout
+ <com.android.phone.common.widget.ResizingILDContainerLayout
android:id="@+id/ild_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
- android:weightSum="6"
android:layout_marginTop="@dimen/ild_margin_height"
- android:layout_marginBottom="@dimen/ild_margin_height">
+ android:layout_marginBottom="@dimen/ild_margin_height"
+ android:layoutDirection="locale" >
- <LinearLayout
- android:layout_width="0dp"
+ <TextView
+ android:id="@+id/ild_country"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:singleLine="true"
- android:layout_weight="3"
android:layout_marginStart="@dimen/dialpad_credits_padding"
- android:orientation="horizontal" >
-
- <TextView android:id="@+id/ild_country"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="@color/credit_banner_text"
- android:layout_gravity="start" />
-
- </LinearLayout>
+ android:textColor="@color/credit_banner_text"
+ android:textAlignment="viewStart"
+ android:singleLine="true"
+ android:ellipsize="end" />
- <LinearLayout
- android:layout_width="0dp"
+ <TextView
+ android:id="@+id/ild_rate"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:singleLine="true"
- android:layout_weight="3"
+ android:layout_marginStart="@dimen/dialpad_credits_spacing"
android:layout_marginEnd="@dimen/dialpad_credits_padding"
- android:orientation="vertical" >
-
- <TextView android:id="@+id/ild_rate"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="4dp"
- android:textStyle="bold"
- android:textColor="@color/credit_banner_text"
- android:layout_gravity="end" />
-
- </LinearLayout>
+ android:textStyle="bold"
+ android:textColor="@color/credit_banner_text"
+ android:textAlignment="viewEnd"
+ android:singleLine="true"
+ android:ellipsize="end" />
- </LinearLayout>
+ </com.android.phone.common.widget.ResizingILDContainerLayout>
<View
android:layout_width="match_parent"
diff --git a/res/values/cm_dimens.xml b/res/values/cm_dimens.xml
index 1749454..bc07983 100644
--- a/res/values/cm_dimens.xml
+++ b/res/values/cm_dimens.xml
@@ -32,6 +32,7 @@
<dimen name="call_method_spinner_arrow_width">24dp</dimen>
<dimen name="dialpad_credits_padding">14dp</dimen>
+ <dimen name="dialpad_credits_spacing">4dp</dimen>
<!-- Dimensions for VoLTE annunciator -->
<dimen name="volte_padding_start">11dp</dimen>
diff --git a/src/com/android/phone/common/widget/ResizingILDContainerLayout.java b/src/com/android/phone/common/widget/ResizingILDContainerLayout.java
new file mode 100644
index 0000000..ff7e6fb
--- /dev/null
+++ b/src/com/android/phone/common/widget/ResizingILDContainerLayout.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2016 The CyanogenMod 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.
+ */
+
+package com.android.phone.common.widget;
+
+import android.annotation.Nullable;
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.LinearLayout;
+import com.android.phone.common.R;
+
+/**
+ * Makes sure that the two children textviews share the width fairly.
+ * If both text views fit within half the width, share 50/50.
+ * If neither text view fits within half the width, share 50/50.
+ * If one textview fits within half the width, give it enough space to show full string and give
+ * remaining space to other string.
+ */
+public class ResizingILDContainerLayout extends LinearLayout {
+ private View mIldCountry;
+ private View mIldRate;
+
+ public ResizingILDContainerLayout(Context context) {
+ super(context);
+ }
+
+ public ResizingILDContainerLayout(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public ResizingILDContainerLayout(Context context, @Nullable AttributeSet attrs,
+ int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ public ResizingILDContainerLayout(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ @Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ mIldCountry = findViewById(R.id.ild_country);
+ mIldRate = findViewById(R.id.ild_rate);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ mIldCountry.measure(0, 0);
+ mIldRate.measure(0, 0);
+
+ final LinearLayout.LayoutParams countryLayoutParams =
+ (LinearLayout.LayoutParams) mIldCountry.getLayoutParams();
+ final LinearLayout.LayoutParams rateLayoutParams =
+ (LinearLayout.LayoutParams) mIldRate.getLayoutParams();
+ final int width = View.MeasureSpec.getSize(widthMeasureSpec) -
+ countryLayoutParams.leftMargin - countryLayoutParams.rightMargin -
+ rateLayoutParams.leftMargin - rateLayoutParams.rightMargin;
+ final int halfWidth = width / 2;
+ int countryWidth = mIldCountry.getMeasuredWidth();
+ int rateWidth = mIldRate.getMeasuredWidth();
+
+ if (halfWidth <= countryWidth && halfWidth > rateWidth) {
+ countryWidth = width - rateWidth;
+ } else if (halfWidth > countryWidth && halfWidth <= rateWidth) {
+ rateWidth = width - countryWidth;
+ } else {
+ // space equally
+ countryWidth = rateWidth = halfWidth;
+ }
+
+
+ countryLayoutParams.width = countryWidth;
+ rateLayoutParams.width = rateWidth;
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ }
+} \ No newline at end of file