Skip to content

Android library, which allows to monitor raw touch events on the screen of the device with RxJava

License

Notifications You must be signed in to change notification settings

pwittchen/touch

Repository files navigation

touch

Android library, which allows to monitor raw touch events on the screen of the device with RxJava

Current Branch Branch Artifact Id Maven Central CI build
☑️ RxJava2.x touch-rx2 Maven Central Android CI

Contents

Usage

Step 1: Create Touch attribute and Disposable in the Activity:

private Touch touch;
private Disposable disposable;

Step 2: Initialize Touch object and subscribe Flowable:

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

  touch = new Touch();

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

TouchEvent is a class with the following values:

public enum TouchEvent {
  public float x() {}
  public float y() {}
  public TouchType type() {}
}

TouchType is an enum with the following values:

public enum TouchType {
  UP, DOWN, MOVE
}

Step 3: override dispatchTouchEvent(MotionEvent event):

@Override public boolean dispatchTouchEvent(MotionEvent event) {
  touch.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();
  }
}

Example

Exemplary application is located in app directory of this repository.

Download

latest version: Maven Central

replace x.y.z with the latest version of the library

You can depend on the library through Maven:

<dependency>
    <groupId>com.github.pwittchen</groupId>
    <artifactId>touch-rx2</artifactId>
    <version>x.y.z</version>
</dependency>

or through Gradle:

dependencies {
  compile 'com.github.pwittchen:touch-rx2:x.y.z'
}

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.

Release

To release the library, bump its version and call the following command:

./gradlew uploadArchives closeAndReleaseRepository

References

License

Copyright 2020 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.

About

Android library, which allows to monitor raw touch events on the screen of the device with RxJava

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages