summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard MacGregor <rmacgregor@cyngn.com>2016-05-11 14:31:59 -0700
committerRichard MacGregor <rmacgregor@cyngn.com>2016-05-12 15:47:32 -0700
commitff0327931a1fdf2617559f7b0a7958c922dbfa30 (patch)
treec8d6f5258de9b0b023436d8ce636875af0d8ba3c /src
parentbdd80a256ef3fc9bf40a50ff61a1f610ac3dd62b (diff)
downloadandroid_packages_apps_PhoneCommon-ff0327931a1fdf2617559f7b0a7958c922dbfa30.tar.gz
android_packages_apps_PhoneCommon-ff0327931a1fdf2617559f7b0a7958c922dbfa30.tar.bz2
android_packages_apps_PhoneCommon-ff0327931a1fdf2617559f7b0a7958c922dbfa30.zip
[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
Diffstat (limited to 'src')
-rw-r--r--src/com/android/phone/common/widget/ResizingILDContainerLayout.java92
1 files changed, 92 insertions, 0 deletions
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