All Projects → pwittchen → Swipe

pwittchen / Swipe

Licence: apache-2.0
👉 detects swipe events on Android

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Swipe

Rxjavapriorityscheduler
RxPS - RxJavaPriorityScheduler - A RxJava Priority Scheduler library for Android and Java applications
Stars: ✭ 138 (-57.41%)
Mutual labels:  rxjava, rxjava2, rxandroid, rxandroid2
ReactiveBus
🚍 Reactive Event Bus for JVM (1.7+) and Android apps built with RxJava 2
Stars: ✭ 17 (-94.75%)
Mutual labels:  rxjava, rxandroid, rxjava2, rxandroid2
Rxbiometric
☝️ RxJava and RxKotlin bindings for Biometric Prompt (Fingerprint Scanner) on Android
Stars: ✭ 295 (-8.95%)
Mutual labels:  rxjava, rxjava2, rxandroid, rxandroid2
Reactivebeacons
Android library scanning BLE beacons nearby with RxJava
Stars: ✭ 171 (-47.22%)
Mutual labels:  rxjava, rxjava2, rxandroid, rxandroid2
Reactivewifi
Android library listening available WiFi Access Points and related information with RxJava Observables
Stars: ✭ 186 (-42.59%)
Mutual labels:  rxjava, rxjava2, rxandroid, rxandroid2
Prefser
Wrapper for Android SharedPreferences with object serialization and RxJava Observables
Stars: ✭ 228 (-29.63%)
Mutual labels:  rxjava, rxjava2, rxandroid, rxandroid2
Rxbus
🚌 The RxBus as steady as an old dog.
Stars: ✭ 334 (+3.09%)
Mutual labels:  rxjava, rxjava2, rxandroid, rxandroid2
Reactivenetwork
Android library listening network connection state and Internet connectivity with RxJava Observables
Stars: ✭ 2,484 (+666.67%)
Mutual labels:  rxjava, rxjava2, rxandroid, rxandroid2
rxandroid2-retrofit2
Small tutorial to get started with RxAndroid 2 and Retrofit 2
Stars: ✭ 55 (-83.02%)
Mutual labels:  rxandroid, rxjava2, rxandroid2
Mvpframes
整合大量主流开源项目并且可高度配置化的 Android MVP 快速集成框架,支持 AndroidX
Stars: ✭ 100 (-69.14%)
Mutual labels:  rxjava, rxjava2, rxandroid
Android Clean Architecture Boilerplate
Apply clean architecture on Android
Stars: ✭ 141 (-56.48%)
Mutual labels:  rxjava, rxjava2, rxandroid
Aiyagirl
🔥 爱吖妹纸(含 Kotlin 分支版本)——Retrofit + RxJava + MVP 架构 APP 体验代码家的干货集中营 Gank.io,福利多多,不容错过
Stars: ✭ 1,109 (+242.28%)
Mutual labels:  rxjava, rxjava2, rxandroid
Rxjava2 Android Samples
RxJava 2 Android Examples - Migration From RxJava 1 to RxJava 2 - How to use RxJava 2 in Android
Stars: ✭ 4,950 (+1427.78%)
Mutual labels:  rxjava, rxjava2, rxandroid
Dagger2
Kotlin Dagger2 example project
Stars: ✭ 145 (-55.25%)
Mutual labels:  rxjava, rxjava2, rxandroid2
Reactivesensors
Android library monitoring device hardware sensors with RxJava
Stars: ✭ 161 (-50.31%)
Mutual labels:  rxjava, rxjava2, rxandroid
Rxjava2 Operators Magician
你用不惯 RxJava,只因缺了这把钥匙 🔑 You are not used to RxJava, just because of the lack of this key.
Stars: ✭ 868 (+167.9%)
Mutual labels:  rxjava, rxjava2, rxandroid
Rxbus
Event Bus By RxJava.
Stars: ✭ 2,126 (+556.17%)
Mutual labels:  rxjava, rxjava2, rxandroid
Androidbasemvp
🚀一个快速搭建MVP+RxJava2+Retrofit 基础框架,主要是封装有Http网络请求、日志、缓存、加载等待、toast、页面状态布局管理、权限、RxBus、Glide图片加载等组件,方便快速开发新项目、减少开发成本。
Stars: ✭ 184 (-43.21%)
Mutual labels:  rxjava, rxjava2, rxandroid
Rxbluetooth
Android reactive bluetooth
Stars: ✭ 405 (+25%)
Mutual labels:  rxjava, rxjava2, rxandroid
Mvvm Architecture Android Beginners
This repository contains a sample app that implements MVVM architecture using Kotlin, ViewModel, LiveData, and etc.
Stars: ✭ 176 (-45.68%)
Mutual labels:  rxjava, rxjava2, rxandroid

swipe Android Arsenal

detects swipe events on Android with listener and RxJava Observable

swipe gestures

Check out an exemplary animation!

JavaDoc is available at: http://pwittchen.github.io/swipe/RxJava2.x

Current Branch Branch Artifact Id Build Status Maven Central
RxJava1.x swipe Build Status for RxJava1.x Maven Central
☑️ RxJava2.x swipe-rx2 Build Status for RxJava2.x Maven Central

Contents

Usage

Imperative way - Listener

Step 1: Create Swipe attribute in the Activity:

private Swipe swipe;

Step 2: Initialize Swipe object and set listener:

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

  setContentView(R.layout.activity_main);
  info = (TextView) findViewById(R.id.info);

  swipe = new Swipe();
  swipe.setListener(new SwipeListener() {
    @Override public void onSwipingLeft(final MotionEvent event) {
      info.setText("SWIPING_LEFT");
    }

    @Override public void onSwipedLeft(final MotionEvent event) {
      info.setText("SWIPED_LEFT");
    }

    @Override public void onSwipingRight(final MotionEvent event) {
      info.setText("SWIPING_RIGHT");
    }

    @Override public void onSwipedRight(final MotionEvent event) {
      info.setText("SWIPED_RIGHT");
    }

    @Override public void onSwipingUp(final MotionEvent event) {
      info.setText("SWIPING_UP");
    }

    @Override public void onSwipedUp(final MotionEvent event) {
      info.setText("SWIPED_UP");
    }

    @Override public void onSwipingDown(final MotionEvent event) {
      info.setText("SWIPING_DOWN");
    }

    @Override public void onSwipedDown(final MotionEvent event) {
      info.setText("SWIPED_DOWN");
    }
  });
}

Step 3: override dispatchTouchEvent(MotionEvent event):

@Override public boolean dispatchTouchEvent(MotionEvent event) {
  swipe.dispatchTouchEvent(event);
  return super.dispatchTouchEvent(event);
}

Reactive way - RxJava

Step 1: Create Swipe attribute and Subscription in the Activity:

private Swipe swipe;
private Disposable disposable;

Step 2: Initialize Swipe object and subscribe Observable:

@Override protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  info = (TextView) findViewById(R.id.info);

  swipe = new Swipe();

  disposable = swipe.observe()
      .subscribeOn(Schedulers.computation())
      .observeOn(AndroidSchedulers.mainThread())
      .subscribe(swipeEvent -> info.setText(swipeEvent.toString()));
}

SwipeEvent is an enum with the following values:

public enum SwipeEvent {
  SWIPING_LEFT,
  SWIPED_LEFT,
  SWIPING_RIGHT,
  SWIPED_RIGHT,
  SWIPING_UP,
  SWIPED_UP,
  SWIPING_DOWN,
  SWIPED_DOWN
}

Step 3: override dispatchTouchEvent(MotionEvent event):

@Override public boolean dispatchTouchEvent(MotionEvent event) {
  swipe.dispatchTouchEvent(event);
  return super.dispatchTouchEvent(event);
}

Step 4: dispose previously created Disposable when it's no longer needed:

@Override protected void onPause() {
  super.onPause();
  if (disposable != null && !disposable.isDisposed()) {
    disposable.dispose();
  }
}

Configuring swipe threshold

If you want to configure swipe threshold to adjust swipe sensitivity, you can use the following constructor:

Swipe(int swipingThreshold, int swipedThreshold)

Default swipingThreshold is equal to 20 and default swipedThreshold is equal to 100. In the case of using Swipe() constructor, these values are set. Decreasing these values will increase swiping and swiped events sensitivity. We can adjust them manually for our needs.

Listening to several events

If you want to react only on one event or several events in imperative way, use abstract class SimpleSwipeListener instead of SwipeListener interface and implement methods, which you need.

Example

Exemplary application is located in app directory of this repository.

If you would like to know, how to use this library with Kotlin, check app-kotlin directory in this repository.

Below, you can see an animation presenting how sample application works.

swipe gestures

Download

You can depend on the library through Maven:

<dependency>
    <groupId>com.github.pwittchen</groupId>
    <artifactId>swipe-rx2</artifactId>
    <version>0.3.0</version>
</dependency>

or through Gradle:

dependencies {
  compile 'com.github.pwittchen:swipe-rx2:0.3.0'
}

Tests

To execute unit tests run:

./gradlew test

Code style

Code style used in the project is called SquareAndroid from Java Code Styles repository by Square available at: https://github.com/square/java-code-styles.

Static code analysis

Static code analysis runs Checkstyle, PMD and Lint. It can be executed with command:

./gradlew check

Reports from analysis are generated in library/build/reports/ directory.

References

License

Copyright 2016 Piotr Wittchen

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].