summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/ButtonDropTarget.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/ButtonDropTarget.java')
-rw-r--r--src/com/android/launcher3/ButtonDropTarget.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/com/android/launcher3/ButtonDropTarget.java b/src/com/android/launcher3/ButtonDropTarget.java
index e4a322622..632e49059 100644
--- a/src/com/android/launcher3/ButtonDropTarget.java
+++ b/src/com/android/launcher3/ButtonDropTarget.java
@@ -29,6 +29,7 @@ import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
@@ -69,6 +70,7 @@ public abstract class ButtonDropTarget extends TextView
/** The paint applied to the drag view on hover */
protected int mHoverColor = 0;
+ protected CharSequence mText;
protected ColorStateList mOriginalTextColor;
protected Drawable mDrawable;
@@ -96,6 +98,7 @@ public abstract class ButtonDropTarget extends TextView
@Override
protected void onFinishInflate() {
super.onFinishInflate();
+ mText = getText();
mOriginalTextColor = getTextColors();
}
@@ -297,4 +300,30 @@ public abstract class ButtonDropTarget extends TextView
public int getTextColor() {
return getTextColors().getDefaultColor();
}
+
+ /**
+ * Returns True if any update was made.
+ */
+ public boolean updateText(boolean hide) {
+ if ((hide && getText().toString().isEmpty()) || (!hide && mText.equals(getText()))) {
+ return false;
+ }
+
+ setText(hide ? "" : mText);
+ return true;
+ }
+
+ public boolean isTextTruncated() {
+ int availableWidth = getMeasuredWidth();
+ if (mHideParentOnDisable) {
+ ViewGroup parent = (ViewGroup) getParent();
+ availableWidth = parent.getMeasuredWidth() - parent.getPaddingLeft()
+ - parent.getPaddingRight();
+ }
+ availableWidth -= (getPaddingLeft() + getPaddingRight() + mDrawable.getIntrinsicWidth()
+ + getCompoundDrawablePadding());
+ CharSequence displayedText = TextUtils.ellipsize(mText, getPaint(), availableWidth,
+ TextUtils.TruncateAt.END);
+ return !mText.equals(displayedText);
+ }
}