@SmallTest public void testOnUp() { KeyEventButtonTouchListener keyEventButtonTouchListener = new KeyEventButtonTouchListener(1, 10); KeyEventHandler keyEventHandler = createKeyEventHandlerMock(); keyEventButtonTouchListener.setKeyEventHandler(keyEventHandler); View view = new View(getInstrumentation().getTargetContext()); view.layout(0, 0, 50, 50); Key key = KeyEventButtonTouchListener.createKey(view, 1, 10); KeyEventContext keyEventContext = new KeyEventContext(key, 0, 0, 0, 0, 100, 100, Collections.<MetaState>emptySet()); keyEventButtonTouchListener.keyEventContext = keyEventContext; keyEventHandler.cancelDelayedKeyEvent(keyEventContext); keyEventHandler.sendKey(eq(10), EasyMock.<List<TouchEvent>>notNull()); keyEventHandler.sendRelease(10); replayAll(); view.setPressed(true); keyEventButtonTouchListener.onUp(view, 25, 25, 100); verifyAll(); assertNull(keyEventButtonTouchListener.keyEventContext); assertFalse(view.isPressed()); }
@SmallTest public void testOnDown() { KeyEventButtonTouchListener keyEventButtonTouchListener = new KeyEventButtonTouchListener(1, 10); KeyEventHandler keyEventHandler = createKeyEventHandlerMock(); keyEventButtonTouchListener.setKeyEventHandler(keyEventHandler); Context context = getInstrumentation().getContext(); ViewGroup parent = new FrameLayout(context); parent.layout(0, 0, 100, 100); View view = new View(context); parent.addView(view); view.layout(0, 0, 50, 50); Key key = KeyEventButtonTouchListener.createKey(view, 1, 10); KeyEventContext keyEventContext = new KeyEventContext(key, 0, 0, 0, 0, 100, 100, Collections.<MetaState>emptySet()); keyEventButtonTouchListener.keyEventContext = keyEventContext; // For onDown, first, cancelDelayedKeyEvent should be invoked to cancel old // event, then maybeStartDelayedKeyEvent and sendPress should follow. keyEventHandler.cancelDelayedKeyEvent(keyEventContext); keyEventHandler.maybeStartDelayedKeyEvent(isA(KeyEventContext.class)); keyEventHandler.sendPress(10); replayAll(); keyEventButtonTouchListener.onDown(view, 0, 0); verifyAll(); assertNotSame(keyEventContext, keyEventButtonTouchListener.keyEventContext); assertTrue(view.isPressed()); }
@Override public boolean dispatchTouchEvent(MotionEvent event) { if (!onFilterTouchEventForSecurity(event)) return false; int action = event.getAction(); double dx = event.getX() - mCenterX; double dy = mCenterY - event.getY(); double radius = Math.sqrt(dx * dx + dy * dy); // Check if the event should be dispatched to the shutter button. if (radius <= mShutterButtonRadius) { if (mIndicatorControlWheel.getVisibility() == View.VISIBLE) { mIndicatorControlWheel.onTouchOutBound(); } if (action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_UP) { return mShutterButton.dispatchTouchEvent(event); } return false; } if (mShutterButton.isPressed()) { // Send cancel to the shutter button if it was pressed. event.setAction(MotionEvent.ACTION_CANCEL); mShutterButton.dispatchTouchEvent(event); return true; } return mIndicatorControlWheel.dispatchTouchEvent(event); }
private static String m91a(View view) { char c = 'F'; char c2 = '.'; StringBuilder stringBuilder = new StringBuilder(128); stringBuilder.append(view.getClass().getName()); stringBuilder.append('{'); stringBuilder.append(Integer.toHexString(System.identityHashCode(view))); stringBuilder.append(' '); switch (view.getVisibility()) { case 0: stringBuilder.append('V'); break; case 4: stringBuilder.append('I'); break; case 8: stringBuilder.append('G'); break; default: stringBuilder.append('.'); break; } stringBuilder.append(view.isFocusable() ? 'F' : '.'); stringBuilder.append(view.isEnabled() ? 'E' : '.'); stringBuilder.append(view.willNotDraw() ? '.' : 'D'); stringBuilder.append(view.isHorizontalScrollBarEnabled() ? 'H' : '.'); stringBuilder.append(view.isVerticalScrollBarEnabled() ? 'V' : '.'); stringBuilder.append(view.isClickable() ? 'C' : '.'); stringBuilder.append(view.isLongClickable() ? 'L' : '.'); stringBuilder.append(' '); if (!view.isFocused()) { c = '.'; } stringBuilder.append(c); stringBuilder.append(view.isSelected() ? 'S' : '.'); if (view.isPressed()) { c2 = 'P'; } stringBuilder.append(c2); stringBuilder.append(' '); stringBuilder.append(view.getLeft()); stringBuilder.append(','); stringBuilder.append(view.getTop()); stringBuilder.append('-'); stringBuilder.append(view.getRight()); stringBuilder.append(','); stringBuilder.append(view.getBottom()); int id = view.getId(); if (id != -1) { stringBuilder.append(" #"); stringBuilder.append(Integer.toHexString(id)); Resources resources = view.getResources(); if (!(id == 0 || resources == null)) { String str; switch (-16777216 & id) { case 16777216: str = "android"; break; case 2130706432: str = "app"; break; default: try { str = resources.getResourcePackageName(id); break; } catch (NotFoundException e) { break; } } String resourceTypeName = resources.getResourceTypeName(id); String resourceEntryName = resources.getResourceEntryName(id); stringBuilder.append(" "); stringBuilder.append(str); stringBuilder.append(":"); stringBuilder.append(resourceTypeName); stringBuilder.append("/"); stringBuilder.append(resourceEntryName); } } stringBuilder.append("}"); return stringBuilder.toString(); }
private static String a(View paramView) { char c3 = 'F'; char c2 = '.'; StringBuilder localStringBuilder = new StringBuilder(128); localStringBuilder.append(paramView.getClass().getName()); localStringBuilder.append('{'); localStringBuilder.append(Integer.toHexString(System.identityHashCode(paramView))); localStringBuilder.append(' '); char c1; label118: label135: label152: label169: label186: label203: label220: label244: label261: int n; Object localObject; switch (paramView.getVisibility()) { default: localStringBuilder.append('.'); if (paramView.isFocusable()) { c1 = 'F'; localStringBuilder.append(c1); if (!paramView.isEnabled()) { break label562; } c1 = 'E'; localStringBuilder.append(c1); if (!paramView.willNotDraw()) { break label568; } c1 = '.'; localStringBuilder.append(c1); if (!paramView.isHorizontalScrollBarEnabled()) { break label574; } c1 = 'H'; localStringBuilder.append(c1); if (!paramView.isVerticalScrollBarEnabled()) { break label580; } c1 = 'V'; localStringBuilder.append(c1); if (!paramView.isClickable()) { break label586; } c1 = 'C'; localStringBuilder.append(c1); if (!paramView.isLongClickable()) { break label592; } c1 = 'L'; localStringBuilder.append(c1); localStringBuilder.append(' '); if (!paramView.isFocused()) { break label598; } c1 = c3; localStringBuilder.append(c1); if (!paramView.isSelected()) { break label604; } c1 = 'S'; localStringBuilder.append(c1); c1 = c2; if (paramView.isPressed()) { c1 = 'P'; } localStringBuilder.append(c1); localStringBuilder.append(' '); localStringBuilder.append(paramView.getLeft()); localStringBuilder.append(','); localStringBuilder.append(paramView.getTop()); localStringBuilder.append('-'); localStringBuilder.append(paramView.getRight()); localStringBuilder.append(','); localStringBuilder.append(paramView.getBottom()); n = paramView.getId(); if (n != -1) { localStringBuilder.append(" #"); localStringBuilder.append(Integer.toHexString(n)); localObject = paramView.getResources(); if ((n != 0) && (localObject != null)) { switch (0xFF000000 & n) { } } } } break; } for (;;) { try { paramView = ((Resources)localObject).getResourcePackageName(n); String str = ((Resources)localObject).getResourceTypeName(n); localObject = ((Resources)localObject).getResourceEntryName(n); localStringBuilder.append(" "); localStringBuilder.append(paramView); localStringBuilder.append(":"); localStringBuilder.append(str); localStringBuilder.append("/"); localStringBuilder.append((String)localObject); } catch (Resources.NotFoundException paramView) { label562: label568: label574: label580: label586: label592: label598: label604: continue; } localStringBuilder.append("}"); return localStringBuilder.toString(); localStringBuilder.append('V'); break; localStringBuilder.append('I'); break; localStringBuilder.append('G'); break; c1 = '.'; break label118; c1 = '.'; break label135; c1 = 'D'; break label152; c1 = '.'; break label169; c1 = '.'; break label186; c1 = '.'; break label203; c1 = '.'; break label220; c1 = '.'; break label244; c1 = '.'; break label261; paramView = "app"; continue; paramView = "android"; } }