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;
   }
 }
Example #2
0
 @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);
 }
Example #13
0
 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);
   }
 }