Java Code Examples for android.view.View.hasFocus()

The following are Jave code examples for showing how to use hasFocus() of the android.view.View class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
Example 1
Project: browser   File: LightningView.java   Source Code and License Vote up 7 votes
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View view, MotionEvent arg1) {
	if (view != null && !view.hasFocus()) {
		view.requestFocus();
	}
	mAction = arg1.getAction();
	mY = arg1.getY();
	if (mAction == MotionEvent.ACTION_DOWN) {
		mLocation = mY;
	} else if (mAction == MotionEvent.ACTION_UP) {
		if ((mY - mLocation) > SCROLL_DOWN_THRESHOLD) {
			if (mWebView.getScrollY() != 0) {
				mBrowserController.showActionBar();
			} else {
				mBrowserController.toggleActionBar();
			}
		} else if ((mY - mLocation) < -SCROLL_UP_THRESHOLD) {
			mBrowserController.hideActionBar();
		}
		mLocation = 0;
	}
	mGestureDetector.onTouchEvent(arg1);
	return false;
}
 
Example 2
Project: ViewPrinter   File: DocumentPage.java   Source Code and License Vote up 7 votes
private boolean tryPassFirstViewToPrevious(DocumentColumn current, DocumentColumn previous) {
    final View view = current.getViewCount() == 0 ? null : current.getViewAt(0);
    if (view != null && previous.canTake(view, view.getLayoutParams(), false)) {
        mLog.i("tryPassFirstViewToPrevious:", "passing view", Utils.mark(view),
                "from", current.getNumber(), "to", previous.getNumber());
        boolean hasFocus = view.hasFocus();
        current.release(view);
        previous.take(view, view.getLayoutParams());
        if (hasFocus) {
            view.post(new Runnable() {
                @Override
                public void run() {
                    view.requestFocus();
                    Utils.showKeyboard(view);
                }
            });
        }
        return true;
    }
    return false;
}
 
Example 3
Project: ViewPrinter   File: DocumentPager.java   Source Code and License Vote up 7 votes
private boolean tryPassFirstViewToPrevious(DocumentPage current, DocumentPage previous) {
    final View view = current.getViewCount() == 0 ? null : current.getViewAt(0);
    if (view != null && previous.canTake(view, view.getLayoutParams(), false)) {
        LOG.i("tryPassFirstViewToPrevious:", "passing view", Utils.mark(view),
                "from", current.getNumber(), "to", previous.getNumber());
        boolean hasFocus = view.hasFocus();
        current.release(view);
        previous.take(view, view.getLayoutParams());
        if (current.getViewCount() == 0) {
            onEmpty(current);
        }
        if (hasFocus) {
            view.post(new Runnable() {
                @Override
                public void run() {
                    view.requestFocus();
                    Utils.showKeyboard(view);
                }
            });
        }
        return true;
    }
    return false;
}
 
Example 4
Project: letv   File: HListView.java   Source Code and License Vote up 7 votes
private boolean handleHorizontalFocusWithinListItem(int direction) {
    if (direction == 33 || direction == 130) {
        int numChildren = getChildCount();
        if (this.mItemsCanFocus && numChildren > 0 && this.mSelectedPosition != -1) {
            View selectedView = getSelectedView();
            if (selectedView != null && selectedView.hasFocus() && (selectedView instanceof ViewGroup)) {
                View currentFocus = selectedView.findFocus();
                View nextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) selectedView, currentFocus, direction);
                if (nextFocus != null) {
                    currentFocus.getFocusedRect(this.mTempRect);
                    offsetDescendantRectToMyCoords(currentFocus, this.mTempRect);
                    offsetRectIntoDescendantCoords(nextFocus, this.mTempRect);
                    if (nextFocus.requestFocus(direction, this.mTempRect)) {
                        return true;
                    }
                }
                View globalNextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) getRootView(), currentFocus, direction);
                if (globalNextFocus != null) {
                    return isViewAncestorOf(globalNextFocus, this);
                }
            }
        }
        return false;
    }
    throw new IllegalArgumentException("direction must be one of {View.FOCUS_UP, View.FOCUS_DOWN}");
}
 
Example 5
Project: youkes_browser   File: LightningView.java   Source Code and License Vote up 7 votes
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View view, MotionEvent arg1) {
	if (view != null && !view.hasFocus()) {
		view.requestFocus();
	}
	mAction = arg1.getAction();
	mY = arg1.getY();
	if (mAction == MotionEvent.ACTION_DOWN) {
		mLocation = mY;
	} else if (mAction == MotionEvent.ACTION_UP) {
		if ((mY - mLocation) > SCROLL_DOWN_THRESHOLD) {
			if (mWebView.getScrollY() != 0) {
				mBrowserController.showActionBar();
			} else {
				mBrowserController.toggleActionBar();
			}
		} else if ((mY - mLocation) < -SCROLL_UP_THRESHOLD) {
			mBrowserController.hideActionBar();
		}
		mLocation = 0;
	}
	mGestureDetector.onTouchEvent(arg1);
	return false;
}
 
Example 6
Project: Xndroid   File: LightningView.java   Source Code and License Vote up 7 votes
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(@Nullable View view, @NonNull MotionEvent arg1) {
    if (view == null)
        return false;

    if (!view.hasFocus()) {
        view.requestFocus();
    }
    mAction = arg1.getAction();
    mY = arg1.getY();
    if (mAction == MotionEvent.ACTION_DOWN) {
        mLocation = mY;
    } else if (mAction == MotionEvent.ACTION_UP) {
        final float distance = (mY - mLocation);
        if (distance > SCROLL_UP_THRESHOLD && view.getScrollY() < SCROLL_UP_THRESHOLD) {
            mUIController.showActionBar();
        } else if (distance < -SCROLL_UP_THRESHOLD) {
            mUIController.hideActionBar();
        }
        mLocation = 0;
    }
    mGestureDetector.onTouchEvent(arg1);
    return false;
}
 
Example 7
Project: Aequorea   File: MaterialSearchView.java   Source Code and License Vote up 6 votes
public void showKeyboard(View view) {
    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1 && view.hasFocus()) {
        view.clearFocus();
    }
    view.requestFocus();
    InputMethodManager imm = (InputMethodManager) view.getContext()
        .getSystemService(Context.INPUT_METHOD_SERVICE);
    if (imm != null) {
        imm.showSoftInput(view, 0);
    }
}
 
Example 8
Project: exciting-app   File: HListView.java   Source Code and License Vote up 6 votes
/**
 * To avoid horizontal focus searches changing the selected item, we
 * manually focus search within the selected item (as applicable), and
 * prevent focus from jumping to something within another item.
 * 
 * @param direction
 *            one of {View.FOCUS_LEFT, View.FOCUS_RIGHT}
 * @return Whether this consumes the key event.
 */
private boolean handleHorizontalFocusWithinListItem(int direction) {
	// TODO: implement this
	if (direction != View.FOCUS_UP && direction != View.FOCUS_DOWN) {
		throw new IllegalArgumentException("direction must be one of" + " {View.FOCUS_UP, View.FOCUS_DOWN}");
	}

	final int numChildren = getChildCount();
	if (mItemsCanFocus && numChildren > 0 && mSelectedPosition != INVALID_POSITION) {
		final View selectedView = getSelectedView();
		if (selectedView != null && selectedView.hasFocus() && selectedView instanceof ViewGroup) {

			final View currentFocus = selectedView.findFocus();
			final View nextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) selectedView, currentFocus,
					direction);
			if (nextFocus != null) {
				// do the math to get interesting rect in next focus'
				// coordinates
				currentFocus.getFocusedRect(mTempRect);
				offsetDescendantRectToMyCoords(currentFocus, mTempRect);
				offsetRectIntoDescendantCoords(nextFocus, mTempRect);
				if (nextFocus.requestFocus(direction, mTempRect)) {
					return true;
				}
			}
			// we are blocking the key from being handled (by returning
			// true)
			// if the global result is going to be some other view within
			// this
			// list. this is to acheive the overall goal of having
			// horizontal d-pad navigation remain in the current item.
			final View globalNextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) getRootView(),
					currentFocus, direction);
			if (globalNextFocus != null) {
				return isViewAncestorOf(globalNextFocus, this);
			}
		}
	}
	return false;
}
 
Example 9
Project: aos-Video   File: TVMenu.java   Source Code and License Vote up 6 votes
@Override
public boolean saveFocus(final View sv) {
    int i = 0;
    lastScroll=0;
    for(View t : ti ) {
        if (t.hasFocus()) {
            current = i;
            if(sv!=null)
                 lastScroll = sv.getScrollY();
            return true;
        }
        i++;
    }
    return false;
}
 
Example 10
Project: FinalProject   File: MaterialSearchView.java   Source Code and License Vote up 6 votes
public void showKeyboard(View view) {
    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD_MR1 && view.hasFocus()) {
        view.clearFocus();
    }
    view.requestFocus();
    InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(view, 0);
}
 
Example 11
Project: LQRWeChat-master   File: LoginAtPresenter.java   Source Code and License Vote up 6 votes
public void changeHasFocusViewBackgroundColor(View view) {
    if (view.hasFocus()) {
        view.setBackgroundColor(UIUtils.getColor(R.color.green0));
    } else {
        view.setBackgroundColor(UIUtils.getColor(R.color.line));
    }
}
 
Example 12
Project: ViewPrinter   File: DocumentPage.java   Source Code and License Vote up 5 votes
@Override
public void onSpaceOver(DocumentColumn column) {
    // This child was not OK in the column it came from.
    // If this is called, we are probably wrap content.
    if (column.getViewCount() == 0) return; // <- happens during collects..
    mLog.i("onSpaceOver:", "triggered by column", column.getNumber());
    int which = mColumns.indexOf(column);
    boolean last = which == mColumnCount - 1;

    if (last) {
        // This is not our business.
        mLog.i("onSpaceOver:", "last column, passing up to pager.");
        getRoot().onSpaceOver(this);
    } else {
        final View lastView = column.getViewAt(column.getViewCount() - 1);
        // If it is marked as untakable, there is nothing we can do.
        // But it could be a view that just grew to be untakable, so we check if the column
        // could take it if it were empty.
        if (Utils.isUntakable(lastView)) return;
        if (!column.canTake(lastView, lastView.getLayoutParams(), true)) {
            Utils.setUntakable(lastView, true);
            return;
        }


        DocumentColumn next = mColumns.get(which + 1);
        mLog.i("onSpaceOver:", "passing view", Utils.mark(lastView), "to column", next.getNumber());
        boolean hasFocus = lastView.hasFocus();
        column.release(lastView);
        next.takeFirst(lastView, lastView.getLayoutParams());
        if (hasFocus) {
            lastView.post(new Runnable() {
                @Override
                public void run() {
                    lastView.requestFocus();
                    Utils.showKeyboard(lastView);
                }
            });
        }
    }
}
 
Example 13
Project: ViewPrinter   File: DocumentPager.java   Source Code and License Vote up 5 votes
@Override
public void onSpaceOver(DocumentPage page) {
    // This child was not OK in the page it came from. Can we open a new one?
    // If this is called, we are NOT wrap content.
    if (!mEnabled) return;
    LOG.i("onSpaceOver:", "triggered by page", page.getNumber());
    final View last = page.getViewAt(page.getViewCount() - 1);

    // If it is marked as untakable, there is nothing we can do.
    // But it could be a view that just grew to be untakable, so we check if the page
    // could take it if it were empty.
    if (Utils.isUntakable(last)) return;
    if (!page.canTake(last, last.getLayoutParams(), true)) {
        Utils.setUntakable(last, true);
        return;
    }

    // Pass to a new page.
    LOG.i("onSpaceOver:", "passing view", Utils.mark(last),
            "to page", page.getNumber() + 1);
    synchronized (mLock) {
        DocumentPage next;
        int which = mPages.indexOf(page);
        int other = which + 1;
        if (other <= getPageCount() - 1) {
            next = mPages.get(which + 1);
        } else {
            openPage();
            next = getLastPage();
        }

        boolean hasFocus = last.hasFocus();
        page.release(last);
        next.takeFirst(last, last.getLayoutParams());
        if (hasFocus) {
            last.post(new Runnable() {
                @Override
                public void run() {
                    last.requestFocus();
                    Utils.showKeyboard(last);
                }
            });
        }
    }
}
 
Example 14
Project: letv   File: HListView.java   Source Code and License Vote up 5 votes
private boolean arrowScrollImpl(int direction) {
    if (getChildCount() <= 0) {
        return false;
    }
    boolean needToRedraw;
    View focused;
    View selectedView = getSelectedView();
    int selectedPos = this.mSelectedPosition;
    int nextSelectedPosition = lookForSelectablePositionOnScreen(direction);
    int amountToScroll = amountToScroll(direction, nextSelectedPosition);
    ArrowScrollFocusResult focusResult = this.mItemsCanFocus ? arrowScrollFocused(direction) : null;
    if (focusResult != null) {
        nextSelectedPosition = focusResult.getSelectedPosition();
        amountToScroll = focusResult.getAmountToScroll();
    }
    if (focusResult != null) {
        needToRedraw = true;
    } else {
        needToRedraw = false;
    }
    if (nextSelectedPosition != -1) {
        boolean z;
        if (focusResult != null) {
            z = true;
        } else {
            z = false;
        }
        handleNewSelectionChange(selectedView, direction, nextSelectedPosition, z);
        setSelectedPositionInt(nextSelectedPosition);
        setNextSelectedPositionInt(nextSelectedPosition);
        selectedView = getSelectedView();
        selectedPos = nextSelectedPosition;
        if (this.mItemsCanFocus && focusResult == null) {
            focused = getFocusedChild();
            if (focused != null) {
                focused.clearFocus();
            }
        }
        needToRedraw = true;
        checkSelectionChanged();
    }
    if (amountToScroll > 0) {
        if (direction != 33) {
            amountToScroll = -amountToScroll;
        }
        scrollListItemsBy(amountToScroll);
        needToRedraw = true;
    }
    if (this.mItemsCanFocus && focusResult == null && selectedView != null && selectedView.hasFocus()) {
        focused = selectedView.findFocus();
        if (!isViewAncestorOf(focused, this) || distanceToView(focused) > 0) {
            focused.clearFocus();
        }
    }
    if (!(nextSelectedPosition != -1 || selectedView == null || isViewAncestorOf(selectedView, this))) {
        selectedView = null;
        hideSelector();
        this.mResurrectToPosition = -1;
    }
    if (!needToRedraw) {
        return false;
    }
    if (selectedView != null) {
        positionSelector(selectedPos, selectedView);
        this.mSelectedLeft = selectedView.getLeft();
    }
    if (!awakenScrollBars()) {
        invalidate();
    }
    invokeOnItemScrollListener();
    return true;
}
 
Example 15
Project: letv   File: HListView.java   Source Code and License Vote up 5 votes
private ArrowScrollFocusResult arrowScrollFocused(int direction) {
    View newFocus;
    View selectedView = getSelectedView();
    if (selectedView == null || !selectedView.hasFocus()) {
        int xSearchPoint;
        if (direction == 130) {
            int listLeft = this.mListPadding.left + (this.mFirstPosition > 0 ? getArrowScrollPreviewLength() : 0);
            if (selectedView == null || selectedView.getLeft() <= listLeft) {
                xSearchPoint = listLeft;
            } else {
                xSearchPoint = selectedView.getLeft();
            }
            this.mTempRect.set(xSearchPoint, 0, xSearchPoint, 0);
        } else {
            int listRight = (getWidth() - this.mListPadding.right) - ((this.mFirstPosition + getChildCount()) + -1 < this.mItemCount ? getArrowScrollPreviewLength() : 0);
            if (selectedView == null || selectedView.getRight() >= listRight) {
                xSearchPoint = listRight;
            } else {
                xSearchPoint = selectedView.getRight();
            }
            this.mTempRect.set(xSearchPoint, 0, xSearchPoint, 0);
        }
        newFocus = FocusFinder.getInstance().findNextFocusFromRect(this, this.mTempRect, direction);
    } else {
        newFocus = FocusFinder.getInstance().findNextFocus(this, selectedView.findFocus(), direction);
    }
    if (newFocus != null) {
        int positionOfNewFocus = positionOfNewFocus(newFocus);
        if (!(this.mSelectedPosition == -1 || positionOfNewFocus == this.mSelectedPosition)) {
            int selectablePosition = lookForSelectablePositionOnScreen(direction);
            if (selectablePosition != -1 && ((direction == 130 && selectablePosition < positionOfNewFocus) || (direction == 33 && selectablePosition > positionOfNewFocus))) {
                return null;
            }
        }
        int focusScroll = amountToScrollToNewFocus(direction, newFocus, positionOfNewFocus);
        int maxScrollAmount = getMaxScrollAmount();
        if (focusScroll < maxScrollAmount) {
            newFocus.requestFocus(direction);
            this.mArrowScrollFocusResult.populate(positionOfNewFocus, focusScroll);
            return this.mArrowScrollFocusResult;
        } else if (distanceToView(newFocus) < maxScrollAmount) {
            newFocus.requestFocus(direction);
            this.mArrowScrollFocusResult.populate(positionOfNewFocus, maxScrollAmount);
            return this.mArrowScrollFocusResult;
        }
    }
    return null;
}
 
Example 16
Project: android_ui   File: WidgetUtils.java   Source Code and License Vote up 4 votes
/**
 * Shows the soft keyboard on the current window for the given <var>view</var>.
 *
 * @param view The view for which to show keyboard. If the view does not have focus, it will be
 *             requested for it via {@link View#requestFocus()}.
 * @return {@code True} if keyboard has been shown successfully, {@code false} if the view does
 * not have focus and it did not took it when requested.
 * @see InputMethodManager#showSoftInput(View, int)
 * @see InputMethodManager#SHOW_FORCED
 */
public static boolean showSoftKeyboard(@NonNull View view) {
	if (view.hasFocus() || view.requestFocus()) {
		final InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
		return imm != null && imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
	}
	return false;
}
 
Example 17
Project: android_ui   File: WidgetUtils.java   Source Code and License Vote up 4 votes
/**
 * Hides the soft keyboard from the current window using token of the given <var>view</var>.
 *
 * @param view The view for which to hide keyboard.
 * @return {@code True} if keyboard has been hidden successfully, {@code false} if the view does
 * not have focus.
 * @see InputMethodManager#hideSoftInputFromWindow(IBinder, int)
 * @see InputMethodManager#RESULT_UNCHANGED_SHOWN
 */
public static boolean hideSoftKeyboard(@NonNull View view) {
	if (view.hasFocus()) {
		final InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
		return imm != null && imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN);
	}
	return false;
}