Search in sources :

Example 41 with MotionEvent

use of android.view.MotionEvent in project android_frameworks_base by ResurrectionRemix.

the class VolumeDialog method initDialog.

private void initDialog() {
    mDialog = new CustomDialog(mContext);
    mSpTexts = new SpTexts(mContext);
    mHovering = false;
    mShowing = false;
    mWindow = mDialog.getWindow();
    mWindow.requestFeature(Window.FEATURE_NO_TITLE);
    mWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
    mWindow.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
    mDialog.setCanceledOnTouchOutside(true);
    final Resources res = mContext.getResources();
    final WindowManager.LayoutParams lp = mWindow.getAttributes();
    lp.type = mWindowType;
    lp.format = PixelFormat.TRANSLUCENT;
    lp.setTitle(VolumeDialog.class.getSimpleName());
    lp.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
    lp.y = res.getDimensionPixelSize(R.dimen.volume_offset_top);
    lp.gravity = Gravity.TOP;
    lp.windowAnimations = -1;
    mWindow.setAttributes(lp);
    mWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
    mDialog.setContentView(R.layout.volume_dialog);
    mDialogView = (ViewGroup) mDialog.findViewById(R.id.volume_dialog);
    mDialogView.setOnHoverListener(new View.OnHoverListener() {

        @Override
        public boolean onHover(View v, MotionEvent event) {
            int action = event.getActionMasked();
            mHovering = (action == MotionEvent.ACTION_HOVER_ENTER) || (action == MotionEvent.ACTION_HOVER_MOVE);
            rescheduleTimeoutH();
            return true;
        }
    });
    mDialogContentView = (ViewGroup) mDialog.findViewById(R.id.volume_dialog_content);
    mDialogRowsView = (ViewGroup) mDialogContentView.findViewById(R.id.volume_dialog_rows);
    mExpanded = false;
    mExpandButton = (ImageButton) mDialogView.findViewById(R.id.volume_expand_button);
    mExpandButton.setOnClickListener(mClickExpand);
    updateWindowWidthH();
    updateExpandButtonH();
    mMotion = new VolumeDialogMotion(mDialog, mDialogView, mDialogContentView, mExpandButton, new VolumeDialogMotion.Callback() {

        @Override
        public void onAnimatingChanged(boolean animating) {
            if (animating)
                return;
            if (mPendingStateChanged) {
                mHandler.sendEmptyMessage(H.STATE_CHANGED);
                mPendingStateChanged = false;
            }
            if (mPendingRecheckAll) {
                mHandler.sendEmptyMessage(H.RECHECK_ALL);
                mPendingRecheckAll = false;
            }
        }
    });
    if (mRows.isEmpty()) {
        if (Util.isVoiceCapable(mContext)) {
            addRow(AudioManager.STREAM_RING, R.drawable.ic_volume_ringer, R.drawable.ic_volume_ringer_mute, true);
        } else {
            addRow(AudioManager.STREAM_RING, R.drawable.ic_volume_notification, R.drawable.ic_volume_notification_mute, true);
        }
        addRow(AudioManager.STREAM_MUSIC, R.drawable.ic_volume_media, R.drawable.ic_volume_media_mute, true);
        addRow(AudioManager.STREAM_ALARM, R.drawable.ic_volume_alarm, R.drawable.ic_volume_alarm_mute, false);
        addRow(AudioManager.STREAM_VOICE_CALL, R.drawable.ic_volume_voice, R.drawable.ic_volume_voice, false);
        addRow(AudioManager.STREAM_BLUETOOTH_SCO, R.drawable.ic_volume_bt_sco, R.drawable.ic_volume_bt_sco, false);
        addRow(AudioManager.STREAM_SYSTEM, R.drawable.ic_volume_system, R.drawable.ic_volume_system_mute, false);
    } else {
        addExistingRows();
    }
    mExpandButtonAnimationDuration = res.getInteger(R.integer.volume_expand_animation_duration);
    mZenFooter = (ZenFooter) mDialog.findViewById(R.id.volume_zen_footer);
    mZenFooter.init(mZenModeController);
    mZenPanel = (TunerZenModePanel) mDialog.findViewById(R.id.tuner_zen_mode_panel);
    mZenPanel.init(mZenModeController);
    mZenPanel.setCallback(mZenPanelCallback);
}
Also used : View(android.view.View) TextView(android.widget.TextView) WindowManager(android.view.WindowManager) MotionEvent(android.view.MotionEvent) ColorDrawable(android.graphics.drawable.ColorDrawable) Resources(android.content.res.Resources)

Example 42 with MotionEvent

use of android.view.MotionEvent in project android_frameworks_base by ResurrectionRemix.

the class TouchUtils method clickView.

/**
     * Simulate touching the center of a view and releasing.
     *
     * @param test The test case that is being run
     * @param v The view that should be clicked
     */
public static void clickView(InstrumentationTestCase test, View v) {
    int[] xy = new int[2];
    v.getLocationOnScreen(xy);
    final int viewWidth = v.getWidth();
    final int viewHeight = v.getHeight();
    final float x = xy[0] + (viewWidth / 2.0f);
    float y = xy[1] + (viewHeight / 2.0f);
    Instrumentation inst = test.getInstrumentation();
    long downTime = SystemClock.uptimeMillis();
    long eventTime = SystemClock.uptimeMillis();
    MotionEvent event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);
    inst.sendPointerSync(event);
    inst.waitForIdleSync();
    eventTime = SystemClock.uptimeMillis();
    final int touchSlop = ViewConfiguration.get(v.getContext()).getScaledTouchSlop();
    event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, x + (touchSlop / 2.0f), y + (touchSlop / 2.0f), 0);
    inst.sendPointerSync(event);
    inst.waitForIdleSync();
    eventTime = SystemClock.uptimeMillis();
    event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP, x, y, 0);
    inst.sendPointerSync(event);
    inst.waitForIdleSync();
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
Also used : Instrumentation(android.app.Instrumentation) Point(android.graphics.Point) MotionEvent(android.view.MotionEvent)

Example 43 with MotionEvent

use of android.view.MotionEvent in project android_frameworks_base by ResurrectionRemix.

the class TouchUtils method drag.

/**
     * Simulate touching a specific location and dragging to a new location.
     *
     * @param test The test case that is being run
     * @param fromX X coordinate of the initial touch, in screen coordinates
     * @param toX Xcoordinate of the drag destination, in screen coordinates
     * @param fromY X coordinate of the initial touch, in screen coordinates
     * @param toY Y coordinate of the drag destination, in screen coordinates
     * @param stepCount How many move steps to include in the drag
     */
public static void drag(InstrumentationTestCase test, float fromX, float toX, float fromY, float toY, int stepCount) {
    Instrumentation inst = test.getInstrumentation();
    long downTime = SystemClock.uptimeMillis();
    long eventTime = SystemClock.uptimeMillis();
    float y = fromY;
    float x = fromX;
    float yStep = (toY - fromY) / stepCount;
    float xStep = (toX - fromX) / stepCount;
    MotionEvent event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);
    inst.sendPointerSync(event);
    for (int i = 0; i < stepCount; ++i) {
        y += yStep;
        x += xStep;
        eventTime = SystemClock.uptimeMillis();
        event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, x, y, 0);
        inst.sendPointerSync(event);
    }
    eventTime = SystemClock.uptimeMillis();
    event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP, x, y, 0);
    inst.sendPointerSync(event);
    inst.waitForIdleSync();
}
Also used : Instrumentation(android.app.Instrumentation) Point(android.graphics.Point) MotionEvent(android.view.MotionEvent)

Example 44 with MotionEvent

use of android.view.MotionEvent in project android_frameworks_base by ResurrectionRemix.

the class NotificationStackScrollLayout method dispatchDownEventToScroller.

private void dispatchDownEventToScroller(MotionEvent ev) {
    MotionEvent downEvent = MotionEvent.obtain(ev);
    downEvent.setAction(MotionEvent.ACTION_DOWN);
    onScrollTouch(downEvent);
    downEvent.recycle();
}
Also used : MotionEvent(android.view.MotionEvent)

Example 45 with MotionEvent

use of android.view.MotionEvent in project android_frameworks_base by ResurrectionRemix.

the class Switch method cancelSuperTouch.

private void cancelSuperTouch(MotionEvent ev) {
    MotionEvent cancel = MotionEvent.obtain(ev);
    cancel.setAction(MotionEvent.ACTION_CANCEL);
    super.onTouchEvent(cancel);
    cancel.recycle();
}
Also used : MotionEvent(android.view.MotionEvent)

Aggregations

MotionEvent (android.view.MotionEvent)1088 View (android.view.View)497 TextView (android.widget.TextView)264 ImageView (android.widget.ImageView)190 GestureDetector (android.view.GestureDetector)95 Point (android.graphics.Point)81 AdapterView (android.widget.AdapterView)80 ViewGroup (android.view.ViewGroup)75 Paint (android.graphics.Paint)72 ListView (android.widget.ListView)70 SuppressLint (android.annotation.SuppressLint)69 OnTouchListener (android.view.View.OnTouchListener)69 Intent (android.content.Intent)68 RecyclerView (android.support.v7.widget.RecyclerView)53 Test (org.junit.Test)47 ScrollView (android.widget.ScrollView)46 Handler (android.os.Handler)43 AbsListView (android.widget.AbsListView)42 WindowManager (android.view.WindowManager)41 LinearLayout (android.widget.LinearLayout)40