Example usage for android.support.v4.view GestureDetectorCompat onTouchEvent

List of usage examples for android.support.v4.view GestureDetectorCompat onTouchEvent

Introduction

In this page you can find the example usage for android.support.v4.view GestureDetectorCompat onTouchEvent.

Prototype

public boolean onTouchEvent(MotionEvent motionEvent) 

Source Link

Usage

From source file:com.thelastcrusade.soundstream.components.MusicLibraryFragment.java

@Override
public void onResume() {
    super.onResume();

    final GestureDetectorCompat songGesture = new GestureDetectorCompat(getActivity(),
            new SongGestureListener(getListView()));
    getListView().setOnTouchListener(new View.OnTouchListener() {
        @Override//from  ww w  . j a v  a  2 s  .com
        public boolean onTouch(View v, MotionEvent event) {
            return songGesture.onTouchEvent(event);
        }
    });

}

From source file:com.thelastcrusade.soundstream.components.PlaylistFragment.java

@Override
public void onResume() {
    super.onResume();
    getActivity().setTitle(getTitle());//from   w  ww .j  a  v a  2s.c o m

    final GestureDetectorCompat songGesture = new GestureDetectorCompat(getActivity(),
            new PlaylistSongGestureListener(getListView()));

    getListView().setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (songGesture.onTouchEvent(event)) {
                if (event.getAction() != MotionEvent.ACTION_DOWN) {
                    MotionEvent cancelEvent = MotionEvent.obtain(event);
                    cancelEvent.setAction(MotionEvent.ACTION_CANCEL);
                    v.onTouchEvent(cancelEvent);
                }
                return true;
            }
            return false;
        }
    });
}

From source file:com.github.omadahealth.circularbarpager.library.CircularBarPager.java

/**
 * Init the view by getting the {@link CircularBar},
 * the {@link android.support.v4.view.ViewPager} and the {@link com.viewpagerindicator.CirclePageIndicator}.
 * Init also some default values as PageTranformer etc...
 *//*  ww w . j a v a 2s. c  o  m*/
private void initializeView(AttributeSet attrs, int defStyleAttr) {
    if (attrs != null) {
        final TypedArray attributes = mContext.getTheme().obtainStyledAttributes(attrs,
                R.styleable.CircularViewPager, defStyleAttr, 0);

        boolean enableOnClick = attributes
                .getBoolean(R.styleable.CircularViewPager_progress_pager_on_click_enabled, false);
        isPaddingSet = false;

        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        RelativeLayout view = (RelativeLayout) inflater.inflate(R.layout.circularbar_view_pager, this);

        mCircularBar = (CircularBar) view.findViewById(R.id.circular_bar);
        mViewPager = (ViewPager) view.findViewById(R.id.view_pager);
        mCirclePageIndicator = (CirclePageIndicator) view.findViewById(R.id.circle_page_indicator);

        //Default init
        if (mCircularBar != null) {
            mCircularBar.loadStyledAttributes(attrs, defStyleAttr);
        }
        if (mViewPager != null) {
            mViewPager.setPageTransformer(false, new FadeViewPagerTransformer());
        }

        //If we enable onClick, ie. we can switch between pages with both a swipe and a touch
        //Touch just goes to the next page % number of pages
        if (enableOnClick) {
            final GestureDetectorCompat tapGestureDetector = new GestureDetectorCompat(getContext(),
                    new GestureDetector.SimpleOnGestureListener() {

                        @Override
                        public boolean onSingleTapConfirmed(MotionEvent e) {
                            mViewPager.setCurrentItem(
                                    (mViewPager.getCurrentItem() + 1) % mViewPager.getAdapter().getCount());
                            return super.onSingleTapConfirmed(e);
                        }
                    });
            if (mViewPager != null) {
                mViewPager.setOnTouchListener(new OnTouchListener() {
                    public boolean onTouch(View v, MotionEvent event) {
                        tapGestureDetector.onTouchEvent(event);
                        return false;
                    }
                });
            }

        }
    }
}

From source file:io.v.android.apps.reader.PdfViewerActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_pdf_viewer);

    mPdfView = (PdfViewWrapper) findViewById(R.id.pdfview);
    mProgressBar = (ProgressBar) findViewById(R.id.pdf_progress_bar);
    mProgressText = (TextView) findViewById(R.id.pdf_progress_text);

    // Swipe gesture detection.
    final GestureDetectorCompat swipeDetector = SwipeGestureDetector.create(this,
            new SwipeGestureDetector.SimpleOnSwipeListener() {
                @Override/*  w  ww.  j a  va  2  s.co m*/
                public boolean onSwipeLeft() {
                    nextPage();
                    return true;
                }

                @Override
                public boolean onSwipeRight() {
                    prevPage();
                    return true;
                }
            });

    mPdfView.setOnTouchListener((v, e) -> swipeDetector.onTouchEvent(e));

    mGoogleApiClient = new GoogleApiClient.Builder(this).addApi(Wearable.API).addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this).build();
}

From source file:im.vector.fragments.HomeFragment.java

private void initViews() {
    // Invitations
    mInvitationsSection.setTitle(R.string.invitations_header);
    mInvitationsSection.setHideIfEmpty(true);
    mInvitationsSection.setPlaceholders(null, getString(R.string.no_result_placeholder));
    mInvitationsSection.setupRoomRecyclerView(
            new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false),
            R.layout.adapter_item_room_invite, false, this, this, null);

    // Favourites
    mFavouritesSection.setTitle(R.string.bottom_action_favourites);
    mFavouritesSection.setHideIfEmpty(true);
    mFavouritesSection.setPlaceholders(null, getString(R.string.no_result_placeholder));
    mFavouritesSection.setupRoomRecyclerView(
            new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false),
            R.layout.adapter_item_circular_room_view, true, this, null, null);

    // People//from   w  w w  .  ja  v a2  s . co m
    mDirectChatsSection.setTitle(R.string.bottom_action_people);
    mDirectChatsSection.setPlaceholders(getString(R.string.no_conversation_placeholder),
            getString(R.string.no_result_placeholder));
    mDirectChatsSection.setupRoomRecyclerView(
            new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false),
            R.layout.adapter_item_circular_room_view, true, this, null, null);

    // Rooms
    mRoomsSection.setTitle(R.string.bottom_action_rooms);
    mRoomsSection.setPlaceholders(getString(R.string.no_room_placeholder),
            getString(R.string.no_result_placeholder));
    mRoomsSection.setupRoomRecyclerView(
            new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false),
            R.layout.adapter_item_circular_room_view, true, this, null, null);

    // Low priority
    mLowPrioritySection.setTitle(R.string.low_priority_header);
    mLowPrioritySection.setHideIfEmpty(true);
    mLowPrioritySection.setPlaceholders(null, getString(R.string.no_result_placeholder));
    mLowPrioritySection.setupRoomRecyclerView(
            new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false),
            R.layout.adapter_item_circular_room_view, true, this, null, null);

    mHomeSectionViews = Arrays.asList(mInvitationsSection, mFavouritesSection, mDirectChatsSection,
            mRoomsSection, mLowPrioritySection);

    // Add listeners to hide the floating button when needed
    final GestureDetectorCompat gestureDetector = new GestureDetectorCompat(mActivity,
            new GestureDetector.SimpleOnGestureListener() {
                @Override
                public boolean onDown(MotionEvent event) {
                    return true;
                }

                @Override
                public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX,
                        float velocityY) {
                    if (mActivity.getFloatingActionButton() != null
                            && mNestedScrollView.getBottom() > mActivity.getFloatingActionButton().getTop()) {
                        mActivity.hideFloatingActionButton(getTag());
                    }
                    return true;
                }
            });

    mNestedScrollView.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if (null != mNestedScrollView) {
                gestureDetector.onTouchEvent(event);
                return mNestedScrollView.onTouchEvent(event);
            } else {
                return false;
            }
        }
    });
    mNestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
        @Override
        public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX,
                int oldScrollY) {
            mActivity.hideFloatingActionButton(getTag());
        }
    });
}

From source file:com.andreadec.musicplayer.MainActivity.java

@SuppressLint({ "InlinedApi", "NewApi" })
@Override//  w  w  w . j a  v  a2 s .  co m
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setVolumeControlStream(AudioManager.STREAM_MUSIC);

    preferences = PreferenceManager.getDefaultSharedPreferences(this);
    if (preferences.getBoolean(Constants.PREFERENCE_DISABLELOCKSCREEN, Constants.DEFAULT_DISABLELOCKSCREEN)) {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); // Disable lock screen for this activity
    }

    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

    if (preferences.getBoolean(Constants.PREFERENCE_SHOWHELPOVERLAYMAINACTIVITY, true)) {
        final FrameLayout frameLayout = new FrameLayout(this);
        LayoutInflater layoutInflater = getLayoutInflater();
        layoutInflater.inflate(R.layout.layout_main, frameLayout);
        layoutInflater.inflate(R.layout.layout_helpoverlay_main, frameLayout);
        final View overlayView = frameLayout.getChildAt(1);
        overlayView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                frameLayout.removeView(overlayView);
                SharedPreferences.Editor editor = preferences.edit();
                editor.putBoolean(Constants.PREFERENCE_SHOWHELPOVERLAYMAINACTIVITY, false);
                editor.commit();
            }
        });
        setContentView(frameLayout);
    } else {
        setContentView(R.layout.layout_main);
    }

    pages = new String[4];
    pages[PAGE_BROWSER] = getResources().getString(R.string.browser);
    pages[PAGE_PLAYLISTS] = getResources().getString(R.string.playlist);
    pages[PAGE_RADIOS] = getResources().getString(R.string.radio);
    pages[PAGE_PODCASTS] = getResources().getString(R.string.podcasts);
    fragmentManager = getSupportFragmentManager();
    setTitle(pages[currentPage]);

    /* NAVIGATION DRAWER */
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.drawable.ic_drawer, R.string.drawer_open,
            R.string.drawer_close) {
        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
            setTitle(pages[currentPage]);
        }

        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            setTitle(getResources().getString(R.string.app_name));
        }
    };
    drawerLayout.setDrawerListener(drawerToggle);
    if (Build.VERSION.SDK_INT >= 11)
        getActionBar().setDisplayHomeAsUpEnabled(true);
    drawerContainer = (RelativeLayout) findViewById(R.id.navigation_container);
    drawerList = (ListView) findViewById(R.id.navigation_list);
    navigationAdapter = new NavigationDrawerArrayAdapter(this, pages);
    drawerList.setAdapter(navigationAdapter);
    drawerList.setOnItemClickListener(new ListView.OnItemClickListener() {
        @Override
        public void onItemClick(@SuppressWarnings("rawtypes") AdapterView parent, View view, int position,
                long id) {
            openPage(position);
            drawerLayout.closeDrawer(drawerContainer);
        }
    });
    buttonQuit = findViewById(R.id.navigation_buttonQuit);
    buttonQuit.setOnClickListener(this);

    if (Build.VERSION.SDK_INT >= 19) {
        // Android 4.4+ only
        boolean translucentStatus = preferences.getBoolean(Constants.PREFERENCE_TRANSLUCENTSTATUSBAR,
                Constants.DEFAULT_TRANSLUCENTSTATUSBAR);
        boolean translucentNavigation = preferences.getBoolean(Constants.PREFERENCE_TRANSLUCENTNAVIGATIONBAR,
                Constants.DEFAULT_TRANSLUCENTNAVIGATIONBAR);

        if (translucentStatus)
            getWindow().addFlags(LayoutParams.FLAG_TRANSLUCENT_STATUS);
        if (translucentNavigation)
            getWindow().addFlags(LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

        SystemBarTintManager tintManager = new SystemBarTintManager(this);
        if (translucentStatus) {
            tintManager.setStatusBarTintEnabled(true);
            tintManager.setStatusBarTintResource(R.color.actionBarBackground);
        }
    }

    textViewArtist = (TextView) findViewById(R.id.textViewArtist);
    textViewTitle = (TextView) findViewById(R.id.textViewTitle);
    textViewTime = (TextView) findViewById(R.id.textViewTime);
    imageViewSongImage = (ImageView) findViewById(R.id.imageViewSongImage);
    imageButtonPrevious = (ImageButton) findViewById(R.id.imageButtonPrevious);
    imageButtonPlayPause = (ImageButton) findViewById(R.id.imageButtonPlayPause);
    imageButtonNext = (ImageButton) findViewById(R.id.imageButtonNext);
    seekBar1 = (SeekBar) findViewById(R.id.seekBar1);
    seekBar2 = (SeekBar) findViewById(R.id.seekBar2);
    imageButtonShowSeekbar2 = (ImageButton) findViewById(R.id.imageButtonShowSeekbar2);
    imageButtonShuffle = (ImageButton) findViewById(R.id.imageButtonShuffle);
    imageButtonRepeat = (ImageButton) findViewById(R.id.imageButtonRepeat);
    imageButtonRepeatAll = (ImageButton) findViewById(R.id.imageButtonRepeatAll);
    buttonBassBoost = (Button) findViewById(R.id.buttonBassBoost);
    buttonEqualizer = (Button) findViewById(R.id.buttonEqualizer);
    buttonShake = (Button) findViewById(R.id.buttonShake);

    imageButtonShuffle.setOnClickListener(this);
    imageButtonRepeat.setOnClickListener(this);
    imageButtonRepeatAll.setOnClickListener(this);
    buttonBassBoost.setOnClickListener(this);
    buttonEqualizer.setOnClickListener(this);
    buttonShake.setOnClickListener(this);

    imageButtonShowSeekbar2.setOnClickListener(this);
    imageButtonPrevious.setOnClickListener(this);
    imageButtonPlayPause.setOnClickListener(this);
    imageButtonNext.setOnClickListener(this);
    seekBar1.setOnSeekBarChangeListener(this);
    seekBar1.setClickable(false);
    seekBar2.setOnSeekBarChangeListener(this);
    textViewTime.setOnClickListener(this);

    showSongImage = preferences.getBoolean(Constants.PREFERENCE_SHOWSONGIMAGE, Constants.DEFAULT_SHOWSONGIMAGE);
    imagesCache = new LruCache<String, Bitmap>(Constants.IMAGES_CACHE_SIZE);

    serviceIntent = new Intent(this, MusicService.class);
    startService(serviceIntent); // Starts the service if it is not running

    if (preferences.getBoolean(Constants.PREFERENCE_OPENLASTPAGEONSTART,
            Constants.DEFAULT_OPENLASTPAGEONSTART)) {
        openPage(preferences.getInt(Constants.PREFERENCE_LASTPAGE, Constants.DEFAULT_LASTPAGE));
    } else {
        openPage(PAGE_BROWSER);
    }
    loadSongFromIntent();

    layoutPlaybackControls = findViewById(R.id.layoutPlaybackControls);
    if (preferences.getBoolean(Constants.PREFERENCE_ENABLEGESTURES, Constants.DEFAULT_ENABLEGESTURES)) {
        final GestureDetectorCompat gestureDetector = new GestureDetectorCompat(this,
                new PlayerGestureListener());
        View layoutTop = findViewById(R.id.layoutTop);
        layoutTop.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return gestureDetector.onTouchEvent(event);
            }
        });
        if (preferences.getBoolean(Constants.PREFERENCE_SHOWPLAYBACKCONTROLS,
                Constants.DEFAULT_SHOWPLAYBACKCONTROLS)) {
            layoutPlaybackControls.setVisibility(View.VISIBLE);
        }
    } else {
        layoutPlaybackControls.setVisibility(View.VISIBLE);
    }
}

From source file:com.project.richard.insightjournal.ui.timerscreen.TimerFragment.java

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    final View view = inflater.inflate(R.layout.fragment_timer, container, false);
    unbinder = ButterKnife.bind(this, view);

    final GestureDetectorCompat mGestureDetector = new GestureDetectorCompat(getContext(),
            new GestureListener());

    mRecordToggleOn = getArguments().getBoolean(PRESET_RECORD_TOGGLE);
    mType = getArguments().getString(PRESET_TYPE);
    Cursor c = getActivity().getContentResolver().query(LogsProvider.Presets.PRESETS, null,
            PresetsColumns.TYPE + " = ?", new String[] { mType }, null);
    if (c != null && c.moveToFirst()) {
        mMaxDuration = c.getLong(c.getColumnIndex(PresetsColumns.DURATION));
        mMaxPrep = c.getLong(c.getColumnIndex(PresetsColumns.PREPARATION_TIME));
        c.close();//from   w  w w .ja  v  a2 s.c  o  m
    } else {
        Log.e(TAG, "Cannot find Preset");
    }

    if (savedInstanceState != null) {
        mTimerRunning = savedInstanceState.getBoolean(BOOLEAN_TIMER_RUNNING);
        mDigitalTimerView.setText(TimerUtils.millisToDigital(savedInstanceState.getLong(LONG_TIMER_DURATION)));
        mCircleTimerView
                .setProgress((float) savedInstanceState.getLong(LONG_TIMER_DURATION) / mMaxDuration * 100);
    } else {
        mDigitalTimerView.setText(TimerUtils.millisToDigital(mMaxDuration));
    }

    if (mRecordToggleOn && mType.equals(PresetsColumns.SITTING_MEDITAION)) {
        mTimerParentLayout.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                mGestureDetector.onTouchEvent(event);
                return true;
            }
        });
    }

    mGoogleApiClient = new GoogleApiClient.Builder(getContext())
            .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
                @Override
                public void onConnected(@Nullable Bundle bundle) {
                    Log.e(TAG, "connected");
                    if (!PermissionsUtils.checkLocationPermissions(getContext())) {
                        Log.e(TAG, "permission needed");
                        PermissionsUtils.requestLocationPermissions(getActivity(),
                                R.id.timer_screen_parent_layout);
                    }
                    mLastKnownLocation = FusedLocationApi.getLastLocation(mGoogleApiClient);
                    if (mTimerService != null && mLastKnownLocation != null) {
                        mTimerService.setmLastLocation(mLastKnownLocation);
                        Intent intent = new Intent(getContext(), FetchAddressIntentService.class);
                        intent.putExtra(FetchAddressIntentService.LATITUDE_EXTRA,
                                mLastKnownLocation.getLatitude());
                        intent.putExtra(FetchAddressIntentService.LONTITUDE_EXTRA,
                                mLastKnownLocation.getLongitude());
                        getContext().startService(intent);
                    } else {
                        Log.e(TAG, "location not fetched");
                    }
                }

                @Override
                public void onConnectionSuspended(int i) {
                    Log.e(TAG, "connection suspended");
                }
            }).addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
                @Override
                public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
                    Log.e(TAG, "connection failed");
                }
            }).addApi(LocationServices.API).build();

    return view;
}

From source file:io.github.hidroh.materialistic.widget.NavFloatingActionButton.java

@Synthetic
void bindNavigationPad() {
    GestureDetectorCompat detectorCompat = new GestureDetectorCompat(getContext(),
            new GestureDetector.SimpleOnGestureListener() {
                @Override//w  w  w .  j a  v a 2  s.c  om
                public boolean onDown(MotionEvent e) {
                    return mNavigable != null;
                }

                @Override
                public boolean onSingleTapConfirmed(MotionEvent e) {
                    Toast.makeText(getContext(), R.string.hint_nav_short, Toast.LENGTH_LONG).show();
                    return true;
                }

                @Override
                public boolean onDoubleTap(MotionEvent e) {
                    trackKonami(DOUBLE_TAP);
                    return super.onDoubleTap(e);
                }

                @Override
                public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float velocityX,
                        float velocityY) {
                    int direction;
                    if (Math.abs(velocityX) > Math.abs(velocityY)) {
                        direction = velocityX < 0 ? Navigable.DIRECTION_LEFT : Navigable.DIRECTION_RIGHT;
                    } else {
                        direction = velocityY < 0 ? Navigable.DIRECTION_UP : Navigable.DIRECTION_DOWN;
                    }
                    mNavigable.onNavigate(direction);
                    mVibrator.vibrate(VIBRATE_DURATION_MS);
                    trackKonami(direction);
                    return false;
                }

                @Override
                public void onLongPress(MotionEvent e) {
                    if (mNavigable == null) {
                        return;
                    }
                    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
                        Toast.makeText(getContext(), R.string.not_supported, Toast.LENGTH_SHORT).show();
                    } else {
                        startDrag(e.getX(), e.getY());
                    }
                }
            });
    //noinspection Convert2Lambda
    super.setOnTouchListener(new OnTouchListener() {
        @SuppressLint("ClickableViewAccessibility")
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            return detectorCompat.onTouchEvent(motionEvent);
        }
    });
}

From source file:eu.powet.groundcopter.views.BaseGroundCopterUI.java

public void init_callbacks() {

    final GestureDetectorCompat mGestureDetector2 = new GestureDetectorCompat(ctx,
            new GestureDetector.OnGestureListener() {

                @Override//w  w  w .  java 2s  .co  m
                public boolean onSingleTapUp(MotionEvent e) {
                    // TODO Auto-generated method stub
                    return false;
                }

                @Override
                public void onShowPress(MotionEvent e) {
                    // TODO Auto-generated method stub

                }

                @Override
                public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                    // TODO Auto-generated method stub
                    return false;
                }

                @Override
                public void onLongPress(final MotionEvent e) {
                    ctx.runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            System.out.println(e.toString());

                            GeoPoint m = (GeoPoint) mapView.getProjection().fromPixels(e.getX(), e.getY());

                            GeoPointMission wp = new GeoPointMission(m, 0);
                            kController.handleMessage(Request.ADD_WAYPOINT, wp);

                            Vibrator v = (Vibrator) ctx.getSystemService(Context.VIBRATOR_SERVICE);
                            // Vibrate for 500 milliseconds
                            v.vibrate(100);

                        }
                    });

                }

                @Override
                public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                    // TODO Auto-generated method stub
                    return false;
                }

                @Override
                public boolean onDown(MotionEvent e) {
                    // TODO Auto-generated method stub
                    return false;
                }
            });

    mapView.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent e) {
            return mGestureDetector2.onTouchEvent(e);
        }

    });
    bt_read_mission.setOnClickListener(new OnClickListener() {

        @Override

        public void onClick(View v) {
            kController.handleMessage(Request.CLEAR_UI_WAYPOINTS);
            kController.handleMessage(Request.READ_WAYPOINTS);
        }

    });
    bt_write_mission.setOnClickListener(new OnClickListener() {

        @Override

        public void onClick(View v) {
            kController.handleMessage(Request.WRITE_WAYPOINTS);
        }

    });

    bt_clean_mission.setOnClickListener(new OnClickListener() {

        @Override

        public void onClick(View v) {
            kController.handleMessage(Request.DELETE_WAYPOINTS);
        }

    });

    bt_record.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (b_copter_record) {
                b_copter_record = false;
                kController.handleMessage(Request.DISABLE_LOG);
                bt_record.setText("Start Record");
            } else {
                b_copter_record = true;
                kController.handleMessage(Request.ENABLE_LOG);
                bt_record.setText("Stop Record");
            }
        }
    });

    bt_set_home_location.setOnClickListener(new OnClickListener() {

        @Override

        public void onClick(View v) {

            /*MAV_CMD_DO_SET_HOME   Changes the home location either to the current location or a specified location.
               Mission Param #1   Use current (1=use current location, 0=use specified location)
               Mission Param #2   Empty
               Mission Param #3   Empty
               Mission Param #4   Empty
               Mission Param #5   Latitude
               Mission Param #6   Longitude
               Mission Param #7   Altitude
                    
                    
            double lat =   48.727209;
            double lon =  -2.00267;
            int  alt = 15;
            GeoPointMission here = new GeoPointMission(new GeoPoint(lat, lon,alt));
                    
                    
               MavlinkHelper.flyhere(mavlink, here);
                    
             */

        }

    });

    bt_goto_home_location.setOnClickListener(new OnClickListener() {

        @Override

        public void onClick(View v) {
            DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    switch (which) {
                    case DialogInterface.BUTTON_POSITIVE:

                        kController.handleMessage(Request.RETURN_TO_LAUNCH);

                        break;
                    }
                }
            };

            AlertDialog.Builder builder = new AlertDialog.Builder(ctx);

            builder.setMessage("Are you sure to go to home?").setPositiveButton("Yes", dialogClickListener)
                    .setNegativeButton("No", dialogClickListener).show();

        }

    });

    bt_request_stream.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (b_request_stream) {
                kController.handleMessage(Request.START_STREAM);
                b_request_stream = false;
                bt_request_stream.setText(txt_stream_stop);
            } else {
                b_request_stream = true;
                kController.handleMessage(Request.STOP_STREAM);
                bt_request_stream.setText(txt_stream_start);
            }
        }

    });
    bt_display_hud.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (b_display_hud) {
                kController.handleMessage(Request.ENABLE_HUD);
                b_display_hud = false;
            } else {
                b_display_hud = true;
                kController.handleMessage(Request.DISABLE_HUD);
            }

        }

    });

    bt_connect.setOnClickListener(new OnClickListener() {

        @Override

        public void onClick(View v) {
            bt_connect.setEnabled(false);
            bt_deconnect.setEnabled(true);

            baudrate_57600.setEnabled(false);
            baudrate_115200.setEnabled(false);

            kController.handleMessage(Request.CONNECT);
        }

    });

    bt_deconnect.setOnClickListener(new OnClickListener() {

        @Override

        public void onClick(View v) {

            bt_connect.setEnabled(true);
            bt_deconnect.setEnabled(false);
            baudrate_57600.setEnabled(true);
            baudrate_115200.setEnabled(true);
            kController.handleMessage(Request.STOP_STREAM);
            kController.handleMessage(Request.DISABLE_BUTTONS);
            kController.handleMessage(Request.DISCONNECT);
        }

    });

    bt_pilot.setOnClickListener(new OnClickListener() {

        @Override

        public void onClick(View v) {

            if (pilot_auto == false) {

                kController.handleMessage(Request.PILOT_AUTO);
                pilot_auto = true;
                bt_pilot.setText(txt_manuel);
            } else {
                kController.handleMessage(Request.PILOT_MANUEL);
                pilot_auto = false;
                bt_pilot.setText(txt_auto);

            }
            /*
            DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int which) {
                  switch (which){
                  case DialogInterface.BUTTON_POSITIVE:
                    
                     
                          
             break;
                    
                  case DialogInterface.BUTTON_NEGATIVE:
             //No button clicked
             break;
                  }
               }
            };
                    
            AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
                    
            builder.setMessage("Confirmez vous le changement de mode ?").setPositiveButton("Yes", dialogClickListener)
            .setNegativeButton("No", dialogClickListener).show();
            */

        }

    });

    bt_exit.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            kController.handleMessage(Request.DISCONNECT);
            kController.handleMessage(Request.EXIT);
        }

    });
    baudrate_115200.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            baudrate_57600.setChecked(false);
            baudrate_115200.setChecked(true);

            kController.handleMessage(Request.CHANGE_BAUDRATE, FTDriver.BAUD115200);

        }

    });

    baudrate_57600.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            baudrate_115200.setChecked(false);
            baudrate_57600.setChecked(true);

            kController.handleMessage(Request.CHANGE_BAUDRATE, FTDriver.BAUD57600);
        }

    });

    bt_arm_disarm.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            /*
             *           In a MAVLINK_MSG_ID_COMMAND_LONG
             A MAV_CMD of type MAV_CMD_COMPONENT_ARM_DISARM
             with component id MAV_COMP_ID_SYSTEM_CONTROL = 250,
             uses param index 1 to specify an arm/disarm motors event: 1 to arm,
             0 to disarm
               //MAVLINK_MSG_ID_COMMAND_LONG*/
            DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    switch (which) {
                    case DialogInterface.BUTTON_POSITIVE:

                        if (!b_copter_is_armed) {
                            kController.handleMessage(Request.SET_ARMED);
                        } else {
                            kController.handleMessage(Request.SET_DISARMED);
                        }
                        break;

                    case DialogInterface.BUTTON_NEGATIVE:
                        //No button clicked
                        break;
                    }
                }
            };

            AlertDialog.Builder builder = new AlertDialog.Builder(ctx);

            builder.setMessage("Are you sure to ARM/DISARM ?").setPositiveButton("Yes", dialogClickListener)
                    .setNegativeButton("No", dialogClickListener).show();

        }

    });

    bt_follow_me.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            if (!b_copter_is_followingme) {

                AlertDialog.Builder alert = new AlertDialog.Builder(ctx);

                alert.setTitle("Follow Me ");
                alert.setMessage("Set Altitude");

                final EditText input_altitude = new EditText(ctx);

                input_altitude.setText("10");

                alert.setView(input_altitude);
                alert.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        try {
                            int altitude = Integer.parseInt(input_altitude.getText().toString());
                            kController.handleMessage(Request.DELETE_WAYPOINTS);
                            kController.handleMessage(Request.SET_FOLLOWME_ALTITUDE, altitude);
                            kController.handleMessage(Request.START_FOLLOWME);
                            bt_follow_me.setText(txt_followme_stop);
                            b_copter_is_followingme = true;
                        } catch (Exception e) {
                            kController.handleMessage(Request.TOAST_MSG, "Error ", e.getMessage());
                        }

                    }
                });
                alert.setNegativeButton("cancel", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub

                    }

                });
                alert.show();

            } else {
                kController.handleMessage(Request.STOP_FOLLOWME);
                bt_follow_me.setText(txt_followme_start);
                b_copter_is_followingme = false;
            }

        }

    });
}