Example usage for android.view View FOCUS_BACKWARD

List of usage examples for android.view View FOCUS_BACKWARD

Introduction

In this page you can find the example usage for android.view View FOCUS_BACKWARD.

Prototype

int FOCUS_BACKWARD

To view the source code for android.view View FOCUS_BACKWARD.

Click Source Link

Document

Use with #focusSearch(int) .

Usage

From source file:com.android.calculator2.EventListener.java

@Override
public boolean onLongClick(View view) {
    switch (view.getId()) {
    case R.id.del:
        mHandler.onClear();// ww w  . j  a  v  a  2  s.  c  o  m
        return true;

    case R.id.next:
        // Handle back
        EditText active = mHandler.mDisplay.getActiveEditText();
        if (active.getSelectionStart() == 0) {
            View v = mHandler.mDisplay.getActiveEditText().focusSearch(View.FOCUS_BACKWARD);
            if (v != null)
                v.requestFocus();
            active = mHandler.mDisplay.getActiveEditText();
            active.setSelection(active.getText().length());
        } else {
            active.setSelection(active.getSelectionStart() - 1);
        }
        return true;
    }
    if (view.getTag() != null) {
        String text = (String) view.getTag();
        if (!text.isEmpty()) {
            Toast.makeText(mContext, text, Toast.LENGTH_SHORT).show();
            return true;
        }
    }
    if (view instanceof TextView && ((TextView) view).getHint() != null) {
        String text = ((TextView) view).getHint().toString();
        if (text.length() >= 2) {
            // Add paren after sin, cos, ln, etc. from buttons
            text += "(";
        }
        mHandler.insert(text);
        returnToBasic();
        return true;
    }
    return false;
}

From source file:android.support.v7.extensions.BaseLayoutManager.java

/**
 * Converts a focusDirection to orientation.
 *
 * @param focusDirection One of {@link android.view.View#FOCUS_UP}, {@link android.view.View#FOCUS_DOWN},
 *                       {@link android.view.View#FOCUS_LEFT}, {@link android.view.View#FOCUS_RIGHT},
 *                       {@link android.view.View#FOCUS_BACKWARD}, {@link android.view.View#FOCUS_FORWARD}
 *                       or 0 for not applicable
 * @return {@link RenderState#LAYOUT_START} or {@link RenderState#LAYOUT_END} if focus direction
 * is applicable to current state, {@link RenderState#INVALID_LAYOUT} otherwise.
 *///from   w w  w.  j a va 2  s  . com
private int convertFocusDirectionToLayoutDirection(int focusDirection) {
    switch (focusDirection) {
    case View.FOCUS_BACKWARD:
        return RenderState.LAYOUT_START;
    case View.FOCUS_FORWARD:
        return RenderState.LAYOUT_END;
    case View.FOCUS_UP:
        return mOrientation == VERTICAL ? RenderState.LAYOUT_START : RenderState.INVALID_LAYOUT;
    case View.FOCUS_DOWN:
        return mOrientation == VERTICAL ? RenderState.LAYOUT_END : RenderState.INVALID_LAYOUT;
    case View.FOCUS_LEFT:
        return mOrientation == HORIZONTAL ? RenderState.LAYOUT_START : RenderState.INVALID_LAYOUT;
    case View.FOCUS_RIGHT:
        return mOrientation == HORIZONTAL ? RenderState.LAYOUT_END : RenderState.INVALID_LAYOUT;
    default:
        if (DEBUG) {
            Log.d(TAG, "Unknown focus request:" + focusDirection);
        }
        return RenderState.INVALID_LAYOUT;
    }

}

From source file:com.alibaba.android.layoutmanager.ExposeLinearLayoutManagerEx.java

/**
 * Converts a focusDirection to orientation.
 *
 * @param focusDirection One of {@link View#FOCUS_UP}, {@link View#FOCUS_DOWN},
 *                       {@link View#FOCUS_LEFT}, {@link View#FOCUS_RIGHT},
 *                       {@link View#FOCUS_BACKWARD}, {@link View#FOCUS_FORWARD}
 *                       or 0 for not applicable
 * @return {@link LayoutState#LAYOUT_START} or {@link LayoutState#LAYOUT_END} if focus direction
 * is applicable to current state, {@link LayoutState#INVALID_LAYOUT} otherwise.
 *///from   w w w  .ja v a2 s  . c  o m
private int convertFocusDirectionToLayoutDirectionExpose(int focusDirection) {
    int orientation = getOrientation();
    switch (focusDirection) {
    case View.FOCUS_BACKWARD:
        return LayoutState.LAYOUT_START;
    case View.FOCUS_FORWARD:
        return LayoutState.LAYOUT_END;
    case View.FOCUS_UP:
        return orientation == VERTICAL ? LayoutState.LAYOUT_START : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_DOWN:
        return orientation == VERTICAL ? LayoutState.LAYOUT_END : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_LEFT:
        return orientation == HORIZONTAL ? LayoutState.LAYOUT_START : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_RIGHT:
        return orientation == HORIZONTAL ? LayoutState.LAYOUT_END : LayoutState.INVALID_LAYOUT;
    default:
        if (DEBUG) {
            Log.d(TAG, "Unknown focus request:" + focusDirection);
        }
        return LayoutState.INVALID_LAYOUT;
    }

}

From source file:com.kozhevin.example.carousel.CarouselLayoutManager.java

/**
 * Converts a focusDirection to orientation.
 *
 * @param focusDirection/*ww w  .  j  a v a2 s .  c  o m*/
 *            One of {@link View#FOCUS_UP}, {@link View#FOCUS_DOWN}, {@link View#FOCUS_LEFT}, {@link View#FOCUS_RIGHT},
 *            {@link View#FOCUS_BACKWARD}, {@link View#FOCUS_FORWARD} or 0 for not applicable
 * @return {@link RenderState#LAYOUT_START} or {@link RenderState#LAYOUT_END} if focus direction
 *         is applicable to current state, {@link RenderState#INVALID_LAYOUT} otherwise.
 */
private int convertFocusDirectionToLayoutDirection(int focusDirection) {
    switch (focusDirection) {
    case View.FOCUS_BACKWARD:
        return RenderState.LAYOUT_START;
    case View.FOCUS_FORWARD:
        return RenderState.LAYOUT_END;
    case View.FOCUS_UP:
        return mOrientation == VERTICAL ? RenderState.LAYOUT_START : RenderState.INVALID_LAYOUT;
    case View.FOCUS_DOWN:
        return mOrientation == VERTICAL ? RenderState.LAYOUT_END : RenderState.INVALID_LAYOUT;
    case View.FOCUS_LEFT:
        return mOrientation == HORIZONTAL ? RenderState.LAYOUT_START : RenderState.INVALID_LAYOUT;
    case View.FOCUS_RIGHT:
        return mOrientation == HORIZONTAL ? RenderState.LAYOUT_END : RenderState.INVALID_LAYOUT;
    default:
        if (IS_DEBUG) {
            Log.d(TAG, "Unknown focus request:" + focusDirection);
        }
        return RenderState.INVALID_LAYOUT;
    }

}

From source file:com.apptentive.android.sdk.view.ApptentiveNestedScrollView.java

/**
 * When looking for focus in children of a scroll view, need to be a little
 * more careful not to give focus to something that is scrolled off screen.
 *
 * This is more expensive than the default {@link android.view.ViewGroup}
 * implementation, otherwise this behavior might have been made the default.
 *//*  w w  w  . j a v  a2  s . c o m*/
@Override
protected boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) {

    // convert from forward / backward notation to up / down / left / right
    // (ugh).
    if (direction == View.FOCUS_FORWARD) {
        direction = View.FOCUS_DOWN;
    } else if (direction == View.FOCUS_BACKWARD) {
        direction = View.FOCUS_UP;
    }

    final View nextFocus = previouslyFocusedRect == null
            ? FocusFinder.getInstance().findNextFocus(this, null, direction)
            : FocusFinder.getInstance().findNextFocusFromRect(this, previouslyFocusedRect, direction);

    if (nextFocus == null) {
        return false;
    }

    if (isOffScreen(nextFocus)) {
        return false;
    }

    return nextFocus.requestFocus(direction, previouslyFocusedRect);
}

From source file:android.support.v7.widget.ChatLinearLayoutManager.java

/**
 * Converts a focusDirection to orientation.
 *
 * @param focusDirection One of {@link View#FOCUS_UP}, {@link View#FOCUS_DOWN},
 *                       {@link View#FOCUS_LEFT}, {@link View#FOCUS_RIGHT},
 *                       {@link View#FOCUS_BACKWARD}, {@link View#FOCUS_FORWARD}
 *                       or 0 for not applicable
 * @return {@link LayoutState#LAYOUT_START} or {@link LayoutState#LAYOUT_END} if focus direction
 * is applicable to current state, {@link LayoutState#INVALID_LAYOUT} otherwise.
 */// w w  w  . ja  v a2  s  .c om
private int convertFocusDirectionToLayoutDirection(int focusDirection) {
    switch (focusDirection) {
    case View.FOCUS_BACKWARD:
        return LayoutState.LAYOUT_START;
    case View.FOCUS_FORWARD:
        return LayoutState.LAYOUT_END;
    case View.FOCUS_UP:
        return mOrientation == VERTICAL ? LayoutState.LAYOUT_START : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_DOWN:
        return mOrientation == VERTICAL ? LayoutState.LAYOUT_END : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_LEFT:
        return mOrientation == HORIZONTAL ? LayoutState.LAYOUT_START : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_RIGHT:
        return mOrientation == HORIZONTAL ? LayoutState.LAYOUT_END : LayoutState.INVALID_LAYOUT;
    default:
        if (DEBUG) {
            Log.d(TAG, "Unknown focus request:" + focusDirection);
        }
        return LayoutState.INVALID_LAYOUT;
    }

}

From source file:com.b44t.messenger.support.widget.LinearLayoutManager.java

/**
 * Converts a focusDirection to orientation.
 *
 * @param focusDirection One of {@link View#FOCUS_UP}, {@link View#FOCUS_DOWN},
 *                       {@link View#FOCUS_LEFT}, {@link View#FOCUS_RIGHT},
 *                       {@link View#FOCUS_BACKWARD}, {@link View#FOCUS_FORWARD}
 *                       or 0 for not applicable
 * @return {@link LayoutState#LAYOUT_START} or {@link LayoutState#LAYOUT_END} if focus direction
 * is applicable to current state, {@link LayoutState#INVALID_LAYOUT} otherwise.
 *///from  w  w w .  j a  va 2 s .  c  o  m
int convertFocusDirectionToLayoutDirection(int focusDirection) {
    switch (focusDirection) {
    case View.FOCUS_BACKWARD:
        return LayoutState.LAYOUT_START;
    case View.FOCUS_FORWARD:
        return LayoutState.LAYOUT_END;
    case View.FOCUS_UP:
        return mOrientation == VERTICAL ? LayoutState.LAYOUT_START : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_DOWN:
        return mOrientation == VERTICAL ? LayoutState.LAYOUT_END : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_LEFT:
        return mOrientation == HORIZONTAL ? LayoutState.LAYOUT_START : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_RIGHT:
        return mOrientation == HORIZONTAL ? LayoutState.LAYOUT_END : LayoutState.INVALID_LAYOUT;
    default:
        if (DEBUG) {
            Log.d(TAG, "Unknown focus request:" + focusDirection);
        }
        return LayoutState.INVALID_LAYOUT;
    }

}

From source file:cn.ismartv.tvrecyclerview.widget.LinearLayoutManager.java

/**
 * Converts a focusDirection to orientation.
 *
 * @param focusDirection One of {@link View#FOCUS_UP}, {@link View#FOCUS_DOWN},
 *                       {@link View#FOCUS_LEFT}, {@link View#FOCUS_RIGHT},
 *                       {@link View#FOCUS_BACKWARD}, {@link View#FOCUS_FORWARD}
 *                       or 0 for not applicable
 * @return {@link LayoutState#LAYOUT_START} or {@link LayoutState#LAYOUT_END} if focus direction
 * is applicable to current state, {@link LayoutState#INVALID_LAYOUT} otherwise.
 *///from w  ww  .  jav a 2  s.  c om
int convertFocusDirectionToLayoutDirection(int focusDirection) {
    switch (focusDirection) {
    case View.FOCUS_BACKWARD:
        if (mOrientation == VERTICAL) {
            return LayoutState.LAYOUT_START;
        } else if (isLayoutRTL()) {
            return LayoutState.LAYOUT_END;
        } else {
            return LayoutState.LAYOUT_START;
        }
    case View.FOCUS_FORWARD:
        if (mOrientation == VERTICAL) {
            return LayoutState.LAYOUT_END;
        } else if (isLayoutRTL()) {
            return LayoutState.LAYOUT_START;
        } else {
            return LayoutState.LAYOUT_END;
        }
    case View.FOCUS_UP:
        return mOrientation == VERTICAL ? LayoutState.LAYOUT_START : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_DOWN:
        return mOrientation == VERTICAL ? LayoutState.LAYOUT_END : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_LEFT:
        return mOrientation == HORIZONTAL ? LayoutState.LAYOUT_START : LayoutState.INVALID_LAYOUT;
    case View.FOCUS_RIGHT:
        return mOrientation == HORIZONTAL ? LayoutState.LAYOUT_END : LayoutState.INVALID_LAYOUT;
    default:
        if (DEBUG) {
            Log.d(TAG, "Unknown focus request:" + focusDirection);
        }
        return LayoutState.INVALID_LAYOUT;
    }

}

From source file:com.appunite.list.GridView.java

/**
 * Is childIndex a candidate for next focus given the direction the focus
 * change is coming from?//from   ww  w. j ava 2 s  .co  m
 * @param childIndex The index to check.
 * @param direction The direction, one of
 *        {FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_FORWARD, FOCUS_BACKWARD}
 * @return Whether childIndex is a candidate.
 */
private boolean isCandidateSelection(int childIndex, int direction) {
    final int count = getChildCount();
    final int invertedIndex = count - 1 - childIndex;

    int rowStart;
    int rowEnd;

    if (!mStackFromBottom) {
        rowStart = childIndex - (childIndex % mNumColumns);
        rowEnd = Math.max(rowStart + mNumColumns - 1, count);
    } else {
        rowEnd = count - 1 - (invertedIndex - (invertedIndex % mNumColumns));
        rowStart = Math.max(0, rowEnd - mNumColumns + 1);
    }

    switch (direction) {
    case View.FOCUS_RIGHT:
        // coming from left, selection is only valid if it is on left
        // edge
        return childIndex == rowStart;
    case View.FOCUS_DOWN:
        // coming from top; only valid if in top row
        return rowStart == 0;
    case View.FOCUS_LEFT:
        // coming from right, must be on right edge
        return childIndex == rowEnd;
    case View.FOCUS_UP:
        // coming from bottom, need to be in last row
        return rowEnd == count - 1;
    case View.FOCUS_FORWARD:
        // coming from top-left, need to be first in top row
        return childIndex == rowStart && rowStart == 0;
    case View.FOCUS_BACKWARD:
        // coming from bottom-right, need to be last in bottom row
        return childIndex == rowEnd && rowEnd == count - 1;
    default:
        throw new IllegalArgumentException("direction must be one of "
                + "{FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT, " + "FOCUS_FORWARD, FOCUS_BACKWARD}.");
    }
}

From source file:com.hippo.widget.BothScrollView.java

/**
 * When looking for focus in children of a scroll view, need to be a little
 * more careful not to give focus to something that is scrolled off screen.
 *
 * This is more expensive than the default {@link android.view.ViewGroup}
 * implementation, otherwise this behavior might have been made the default.
 *//*from ww w . j  ava2 s . c  o  m*/
@Override
protected boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) {

    // convert from forward / backward notation to up / down / left / right
    // (ugh).
    if (direction == View.FOCUS_FORWARD) {
        direction = View.FOCUS_RIGHT;
    } else if (direction == View.FOCUS_BACKWARD) {
        direction = View.FOCUS_LEFT;
    }

    final View nextFocus = previouslyFocusedRect == null
            ? FocusFinder.getInstance().findNextFocus(this, null, direction)
            : FocusFinder.getInstance().findNextFocusFromRect(this, previouslyFocusedRect, direction);

    if (nextFocus == null) {
        return false;
    }

    if (isOffScreen(nextFocus)) {
        return false;
    }

    return nextFocus.requestFocus(direction, previouslyFocusedRect);
}