Index: chrome/android/java_staging/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java |
deleted file mode 100644 |
index 36f4759d422ccde16430d13b43f0edeb6704d5bd..0000000000000000000000000000000000000000 |
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java |
+++ /dev/null |
@@ -1,91 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.browser.snackbar; |
- |
-import android.content.Context; |
-import android.support.v7.widget.AppCompatTextView; |
-import android.text.TextPaint; |
-import android.text.TextUtils; |
-import android.text.TextUtils.TruncateAt; |
-import android.util.AttributeSet; |
-import android.widget.TextView; |
- |
-/** |
- * A {@link AppCompatTextView} that properly clips content within a template, instead of clipping |
- * the templated content. |
- */ |
-public class TemplatePreservingTextView extends AppCompatTextView { |
- private static final String DEFAULT_TEMPLATE = "%1$s"; |
- private String mTemplate; |
- private CharSequence mContent; |
- |
- /** |
- * Builds an instance of an {@link TemplatePreservingTextView}. |
- * @param context A {@link Context} instance to build this {@link TextView} in. |
- * @param attrs An {@link AttributeSet} instance. |
- */ |
- public TemplatePreservingTextView(Context context, AttributeSet attrs) { |
- super(context, attrs); |
- } |
- |
- /** |
- * Update template for undo text |
- * @param template Template format string (eg. "Close %s") |
- */ |
- public void setTemplate(String template) { |
- mTemplate = TextUtils.isEmpty(template) ? DEFAULT_TEMPLATE : template; |
- } |
- |
- /** |
- * This will take {@code text} and apply it to the internal template, building a new |
- * {@link String} to set. This {code text} will be automatically truncated to fit within |
- * the template as best as possible, making sure the template does not get clipped. |
- */ |
- @Override |
- public void setText(CharSequence text, BufferType type) { |
- final int availWidth = getWidth() - getPaddingLeft() - getPaddingRight(); |
- setClippedText(text, availWidth); |
- } |
- |
- @Override |
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { |
- final int availWidth = |
- MeasureSpec.getSize(widthMeasureSpec) - getPaddingLeft() - getPaddingRight(); |
- setClippedText(mContent, availWidth); |
- |
- super.onMeasure(widthMeasureSpec, heightMeasureSpec); |
- } |
- |
- private void setClippedText(CharSequence text, int availWidth) { |
- mContent = text != null ? text : ""; |
- |
- if (mTemplate == null) { |
- super.setText(mContent, BufferType.SPANNABLE); |
- return; |
- } |
- |
- final TextPaint paint = getPaint(); |
- |
- // Calculate the width the template takes. |
- final String emptyTemplate = String.format(mTemplate, ""); |
- final float emptyTemplateWidth = paint.measureText(emptyTemplate); |
- |
- // Calculate the available width for the content. |
- final float contentWidth = Math.max(availWidth - emptyTemplateWidth, 0.f); |
- |
- // Ellipsize the content to the available width. |
- CharSequence clipped = TextUtils.ellipsize(mContent, paint, contentWidth, TruncateAt.END); |
- |
- // Build the full string, which should fit within availWidth. |
- String finalContent = String.format(mTemplate, clipped); |
- |
- // BufferType.SPANNABLE is required so that TextView.getIterableTextForAccessibility() |
- // doesn't call our custom setText(). See crbug.com/449311 |
- super.setText(finalContent, BufferType.SPANNABLE); |
- |
- // Set the content description to the non-ellipsized text |
- setContentDescription(String.format(mTemplate, mContent)); |
- } |
-} |