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 |
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();
}
}
Exemplary application is located in app
directory of this repository.
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'
}
To execute unit tests run:
./gradlew test
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 runs Checkstyle, PMD and Lint. It can be executed with command:
./gradlew check
Reports from analysis are generated in library/build/reports/
directory.
To release the library, bump its version and call the following command:
./gradlew uploadArchives closeAndReleaseRepository
- better gesture detector project
- gesture project
- swipe project
- detecting swipe gesture in mobile application
- dispatchTouchEvent(event) method in documentation
- MotionEvent class in documentation
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.