Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f41a054f authored by Mihai Popa's avatar Mihai Popa
Browse files

Enable null cursor drawable

I3801ee8642d277c96c094b7d4155e28fc5bcea87 added public setters and
getter for a TextView's cursor drawable. The setter was expecting a
NonNull Drawable argument. However, this was inconsistent with the
textCursorDrawable attribute which had existed for a long time in
platform. This accepted null, case when a fallback vertical black line
is drawn as a cursor. This CL fixes this inconsistency, by allowing null
Drawables to be set for the cursor.

Also, the CL fixes the preconditions checking resource id arguments to
be strictly positive, while negative resource ids are valid as well.

Bug: 122550166
Test: atest CtsWidgetTestCases:android.widget.cts.TextViewTest
Change-Id: Ia10fafbdc0405968e57b35a615eedaeb9ee80c96
parent ccee30ed
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -3520,7 +3520,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     */
    @android.view.RemotableViewMethod
    public void setTextSelectHandle(@DrawableRes int textSelectHandle) {
        Preconditions.checkArgumentPositive(textSelectHandle,
        Preconditions.checkArgument(textSelectHandle != 0,
                "The text select handle should be a valid drawable resource id.");
        setTextSelectHandle(mContext.getDrawable(textSelectHandle));
    }
@@ -3577,7 +3577,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     */
    @android.view.RemotableViewMethod
    public void setTextSelectHandleLeft(@DrawableRes int textSelectHandleLeft) {
        Preconditions.checkArgumentPositive(textSelectHandleLeft,
        Preconditions.checkArgument(textSelectHandleLeft != 0,
                "The text select left handle should be a valid drawable resource id.");
        setTextSelectHandleLeft(mContext.getDrawable(textSelectHandleLeft));
    }
@@ -3634,7 +3634,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     */
    @android.view.RemotableViewMethod
    public void setTextSelectHandleRight(@DrawableRes int textSelectHandleRight) {
        Preconditions.checkArgumentPositive(textSelectHandleRight,
        Preconditions.checkArgument(textSelectHandleRight != 0,
                "The text select right handle should be a valid drawable resource id.");
        setTextSelectHandleRight(mContext.getDrawable(textSelectHandleRight));
    }
@@ -3667,9 +3667,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     * @see #setTextCursorDrawable(int)
     * @attr ref android.R.styleable#TextView_textCursorDrawable
     */
    public void setTextCursorDrawable(@NonNull Drawable textCursorDrawable) {
        Preconditions.checkNotNull(textCursorDrawable,
                "The cursor drawable should not be null.");
    public void setTextCursorDrawable(@Nullable Drawable textCursorDrawable) {
        mCursorDrawable = textCursorDrawable;
        mCursorDrawableRes = 0;
        if (mEditor != null) {
@@ -3687,8 +3685,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     * @attr ref android.R.styleable#TextView_textCursorDrawable
     */
    public void setTextCursorDrawable(@DrawableRes int textCursorDrawable) {
        Preconditions.checkArgumentPositive(textCursorDrawable,
                "The cursor drawable should be a valid drawable resource id.");
        setTextCursorDrawable(mContext.getDrawable(textCursorDrawable));
    }