private void updateWebKitTimeoutLocked() { DispatchEvent d = mWebKitDispatchEventQueue.mHead; if (d != null && mWebKitTimeoutScheduled && mWebKitTimeoutTime == d.mTimeoutTime) { return; } if (mWebKitTimeoutScheduled) { mUiHandler.removeMessages(UiHandler.MSG_WEBKIT_TIMEOUT); mWebKitTimeoutScheduled = false; } if (d != null) { mUiHandler.sendEmptyMessageAtTime(UiHandler.MSG_WEBKIT_TIMEOUT, d.mTimeoutTime); mWebKitTimeoutScheduled = true; mWebKitTimeoutTime = d.mTimeoutTime; } }
@Override public void onResume() { super.onResume(); if (mShouldSelectAllInput && mSearchUi.getVisibility() == View.VISIBLE) { handler.sendEmptyMessageDelayed(UiHandler.MSG_SHOW_SEARCH, ACTION_DURATION_FOR_RESUME); } mShouldSelectAllInput = false; }
private void dispatchUiEvents(boolean calledFromHandler) { for (; ; ) { MotionEvent event; final int eventType; final int flags; synchronized (mLock) { DispatchEvent d = mUiDispatchEventQueue.dequeue(); if (d == null) { if (mUiDispatchScheduled) { mUiDispatchScheduled = false; if (!calledFromHandler) { mUiHandler.removeMessages(UiHandler.MSG_DISPATCH_UI_EVENTS); } } return; } event = d.mEvent; if (event != null && (d.mFlags & FLAG_WEBKIT_TRANSFORMED_EVENT) != 0) { event.scale(1.0f / d.mWebKitScale); event.offsetLocation(-d.mWebKitXOffset, -d.mWebKitYOffset); d.mFlags &= ~FLAG_WEBKIT_TRANSFORMED_EVENT; } eventType = d.mEventType; if (eventType == EVENT_TYPE_TOUCH) { event = mUiTouchStream.update(event); if (DEBUG && event == null && d.mEvent != null) { Log.d(TAG, "dispatchUiEvents: dropped event " + d.mEvent); } } flags = d.mFlags; if (event == d.mEvent) { d.mEvent = null; // retain ownership of event, don't recycle it yet } recycleDispatchEventLocked(d); if (eventType == EVENT_TYPE_CLICK) { scheduleHideTapHighlightLocked(); } } // Handle the event. if (event != null) { dispatchUiEvent(event, eventType, flags); event.recycle(); } } }
private void scheduleUiDispatchLocked() { if (!mUiDispatchScheduled) { mUiHandler.sendEmptyMessage(UiHandler.MSG_DISPATCH_UI_EVENTS); mUiDispatchScheduled = true; } }
private void unscheduleClickLocked() { if (mPostClickScheduled) { mPostClickScheduled = false; mUiHandler.removeMessages(UiHandler.MSG_CLICK); } }
private void scheduleClickLocked() { unscheduleClickLocked(); mPostClickScheduled = true; mUiHandler.sendEmptyMessageDelayed(UiHandler.MSG_CLICK, DOUBLE_TAP_TIMEOUT); }
private void unscheduleHideTapHighlightLocked() { if (mPostHideTapHighlightScheduled) { mPostHideTapHighlightScheduled = false; mUiHandler.removeMessages(UiHandler.MSG_HIDE_TAP_HIGHLIGHT); } }
private void scheduleHideTapHighlightLocked() { unscheduleHideTapHighlightLocked(); mPostHideTapHighlightScheduled = true; mUiHandler.sendEmptyMessageDelayed(UiHandler.MSG_HIDE_TAP_HIGHLIGHT, PRESSED_STATE_DURATION); }
private void unscheduleShowTapHighlightLocked() { if (mPostShowTapHighlightScheduled) { mPostShowTapHighlightScheduled = false; mUiHandler.removeMessages(UiHandler.MSG_SHOW_TAP_HIGHLIGHT); } }
private void scheduleShowTapHighlightLocked() { unscheduleShowTapHighlightLocked(); mPostShowTapHighlightScheduled = true; mUiHandler.sendEmptyMessageDelayed(UiHandler.MSG_SHOW_TAP_HIGHLIGHT, TAP_TIMEOUT); }
private void unscheduleLongPressLocked() { if (mPostLongPressScheduled) { mPostLongPressScheduled = false; mUiHandler.removeMessages(UiHandler.MSG_LONG_PRESS); } }
private void scheduleLongPressLocked() { unscheduleLongPressLocked(); mPostLongPressScheduled = true; mUiHandler.sendEmptyMessageDelayed(UiHandler.MSG_LONG_PRESS, LONG_PRESS_TIMEOUT); }
public void showSearchUi(boolean show) { View titleBar = ((BaseActivity) getActivity()).getTitleBarContainer(); View tabs = ((MainActivity) getActivity()).tabs; if (show) { if (mFakeTopBmp == null) { int w = 0, h = 0, titleBmpH = 0, tabsBmpH = (int) ShopApp.getContext().getResources().getDimension(R.dimen.tabs_visible_height); titleBar.setDrawingCacheEnabled(true); tabs.setDrawingCacheEnabled(true); Bitmap titleBmp = titleBar.getDrawingCache(); Bitmap tabsBmp = tabs.getDrawingCache(); if (titleBmp != null) { w = titleBmp.getWidth(); mTitleHeight = titleBmpH = titleBmp.getHeight(); h += titleBmpH; } if (tabsBmp != null) { if (w == 0) { w = tabsBmp.getWidth(); } h += tabsBmpH; } mFakeTopBmp = Bitmap.createBitmap(w, h, Config.ARGB_8888); Canvas canvas = new Canvas(mFakeTopBmp); Paint paint = new Paint(); if (titleBmp != null) { canvas.drawBitmap(titleBmp, 0, 0, paint); titleBmp.recycle(); } titleBar.setDrawingCacheEnabled(false); if (tabsBmp != null) { paint.setColor( ShopApp.getContext().getResources().getColor(R.color.fake_search_background)); canvas.drawRect(0, titleBmpH, w, titleBmpH + tabsBmpH, paint); canvas.drawBitmap(tabsBmp, 0, titleBmpH, paint); tabsBmp.recycle(); } tabs.setDrawingCacheEnabled(false); } mCategoryListAdapter.showCoverView(true); mFakeBg.setVisibility(View.VISIBLE); mFakeBg.setLayoutParams(new LayoutParams(mFakeTopBmp.getWidth(), mFakeTopBmp.getHeight())); mFakeBg.setBackgroundDrawable(new BitmapDrawable(mFakeTopBmp)); mTopView.setLayoutParams( new AbsListView.LayoutParams(mFakeTopBmp.getWidth(), mFakeTopBmp.getHeight())); mTopViewContent.setBackgroundColor( ShopApp.getContext().getResources().getColor(R.color.transparent)); titleBar.setVisibility(View.GONE); tabs.setVisibility(View.GONE); int scrollDis = mTitleHeight + mFakeSearchView.getTop() + (int) ShopApp.getContext() .getResources() .getDimension(R.dimen.fake_search_scroll_up_diff); mListView.smoothScrollBy(scrollDis, ANIMATION_DURATION); handler.sendEmptyMessageDelayed(UiHandler.MSG_SHOW_SEARCH, ACTION_DURATION); loadHint(); } else { mInput.setText(""); Utils.SoftInput.hide(getActivity(), mInput.getWindowToken()); mSearchUi.setVisibility(View.GONE); int scrollDis = -mFakeTopBmp.getHeight() + (int) ShopApp.getContext() .getResources() .getDimension(R.dimen.fake_search_scroll_down_diff); mListView.smoothScrollBy(scrollDis, ANIMATION_DURATION); handler.sendEmptyMessageDelayed(UiHandler.MSG_HIDE_SEARCH, ACTION_DURATION); } }