summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/widget/TextView.java58
1 files changed, 17 insertions, 41 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index fc30446..bcc7c46 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -447,7 +447,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
drawableBottom = null;
int drawablePadding = 0;
int ellipsize = -1;
- boolean singleLine = false;
+ boolean singleLine = true;
int maxlength = -1;
CharSequence text = "";
CharSequence hint = null;
@@ -796,10 +796,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
? inputType : EditorInfo.TYPE_CLASS_TEXT;
} else if (inputType != EditorInfo.TYPE_NULL) {
setInputType(inputType, true);
- singleLine = (inputType&(EditorInfo.TYPE_MASK_CLASS
- | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE)) !=
- (EditorInfo.TYPE_CLASS_TEXT
- | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE);
+ singleLine = !isMultilineInputType(inputType);
} else if (phone) {
mInput = DialerKeyListener.getInstance();
mInputType = inputType = EditorInfo.TYPE_CLASS_PHONE;
@@ -818,10 +815,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
TextKeyListener.Capitalize cap;
inputType = EditorInfo.TYPE_CLASS_TEXT;
- if (!singleLine) {
- inputType |= EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE;
- }
-
switch (autocap) {
case 1:
cap = TextKeyListener.Capitalize.SENTENCES;
@@ -848,9 +841,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
} else if (editable) {
mInput = TextKeyListener.getInstance();
mInputType = EditorInfo.TYPE_CLASS_TEXT;
- if (!singleLine) {
- mInputType |= EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE;
- }
} else {
mInput = null;
@@ -867,8 +857,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
}
}
- if (password && (mInputType&EditorInfo.TYPE_MASK_CLASS)
- == EditorInfo.TYPE_CLASS_TEXT) {
+ if (password && (mInputType&EditorInfo.TYPE_MASK_CLASS) == EditorInfo.TYPE_CLASS_TEXT) {
mInputType = (mInputType & ~(EditorInfo.TYPE_MASK_VARIATION))
| EditorInfo.TYPE_TEXT_VARIATION_PASSWORD;
}
@@ -884,12 +873,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
drawableLeft, drawableTop, drawableRight, drawableBottom);
setCompoundDrawablePadding(drawablePadding);
- if (singleLine) {
- setSingleLine();
-
- if (mInput == null && ellipsize < 0) {
+ setSingleLine(singleLine);
+ if (singleLine && mInput == null && ellipsize < 0) {
ellipsize = 3; // END
- }
}
switch (ellipsize) {
@@ -1153,14 +1139,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
} catch (IncompatibleClassChangeError e) {
mInputType = EditorInfo.TYPE_CLASS_TEXT;
}
- if ((mInputType&EditorInfo.TYPE_MASK_CLASS)
- == EditorInfo.TYPE_CLASS_TEXT) {
- if (mSingleLine) {
- mInputType &= ~EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE;
- } else {
- mInputType |= EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE;
- }
- }
+ setSingleLine(mSingleLine);
} else {
mInputType = EditorInfo.TYPE_NULL;
}
@@ -2988,6 +2967,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
return mHint;
}
+ private boolean isMultilineInputType(int type) {
+ return (type & (EditorInfo.TYPE_MASK_CLASS | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE)) ==
+ (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE);
+ }
+
/**
* Set the type of the content with a constant as defined for
* {@link EditorInfo#inputType}. This will take care of changing
@@ -3024,17 +3008,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
}
}
- boolean multiLine = (type&(EditorInfo.TYPE_MASK_CLASS
- | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE)) ==
- (EditorInfo.TYPE_CLASS_TEXT
- | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE);
+ boolean singleLine = !isMultilineInputType(type);
// We need to update the single line mode if it has changed or we
// were previously in password mode.
- if (mSingleLine == multiLine || forceUpdate) {
+ if (mSingleLine != singleLine || forceUpdate) {
// Change single line mode, but only change the transformation if
// we are not in password mode.
- applySingleLine(!multiLine, !isPassword);
+ applySingleLine(singleLine, !isPassword);
}
InputMethodManager imm = InputMethodManager.peekInstance();
@@ -4721,10 +4702,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_ENTER_ACTION;
}
}
- if ((outAttrs.inputType & (InputType.TYPE_MASK_CLASS
- | InputType.TYPE_TEXT_FLAG_MULTI_LINE))
- == (InputType.TYPE_CLASS_TEXT
- | InputType.TYPE_TEXT_FLAG_MULTI_LINE)) {
+ if (isMultilineInputType(outAttrs.inputType)) {
// Multi-line text editors should always show an enter key.
outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_ENTER_ACTION;
}
@@ -6067,8 +6045,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
*/
@android.view.RemotableViewMethod
public void setSingleLine(boolean singleLine) {
- if ((mInputType&EditorInfo.TYPE_MASK_CLASS)
- == EditorInfo.TYPE_CLASS_TEXT) {
+ if ((mInputType & EditorInfo.TYPE_MASK_CLASS) == EditorInfo.TYPE_CLASS_TEXT) {
if (singleLine) {
mInputType &= ~EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE;
} else {
@@ -6084,8 +6061,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
setLines(1);
setHorizontallyScrolling(true);
if (applyTransformation) {
- setTransformationMethod(SingleLineTransformationMethod.
- getInstance());
+ setTransformationMethod(SingleLineTransformationMethod.getInstance());
}
} else {
setMaxLines(Integer.MAX_VALUE);