https://github.com/pwittchen/reactiveairplanemode
✈️ Android library listening airplane mode with RxJava Observables
https://github.com/pwittchen/reactiveairplanemode
airplane airplane-mode android broadcast-reciever rxandroid rxandroid2 rxjava rxjava2
Last synced: 6 months ago
JSON representation
✈️ Android library listening airplane mode with RxJava Observables
- Host: GitHub
- URL: https://github.com/pwittchen/reactiveairplanemode
- Owner: pwittchen
- License: apache-2.0
- Created: 2017-08-02T22:21:09.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2020-08-19T08:49:26.000Z (about 5 years ago)
- Last Synced: 2025-03-27T03:35:18.830Z (6 months ago)
- Topics: airplane, airplane-mode, android, broadcast-reciever, rxandroid, rxandroid2, rxjava, rxjava2
- Language: Java
- Homepage:
- Size: 338 KB
- Stars: 8
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
ReactiveAirplaneMode [](https://travis-ci.org/pwittchen/ReactiveAirplaneMode) [](https://codecov.io/gh/pwittchen/ReactiveAirplaneMode) 
====================
✈️ Android library listening airplane mode with RxJava ObservablesThis library is compatible with RxJava2 and RxAndroid2.
JavaDoc can be found at: https://pwittchen.github.io/ReactiveAirplaneMode/.
Contents
--------- [Usage](#usage)
- [Examples](#examples)
- [Download](#download)
- [Tests](#tests)
- [Code style](#code-style)
- [Static code analysis](#static-code-analysis)
- [Changelog](#changelog)
- [Releasing](#releasing)
- [References](#references)
- [License](#license)Usage
-----We can observe airplane mode in the following way:
```java
ReactiveAirplaneMode.create()
.observe(context)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(isOn -> textView.setText(String.format("Airplane mode on: %s", isOn.toString())));
```When airplane mode changes, subscriber will be notified with appropriate `Boolean` value (`true` if airplane mode is on or `false` otherwise).
If you're using this code in an `Activity`, don't forget to dispose `Disposable` in `onPause()` method just like in the sample app.
Please note that method above **will be called only when the airplane mode changes**.
If you want to **read airplane mode on start and then observe it**, you can use `getAndObserve(context)` method as follows:
```java
ReactiveAirplaneMode.create()
.getAndObserve(context)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(isOn -> textView.setText(String.format("Airplane mode on: %s", isOn.toString())));
```If you want to **check airplane mode only once**, you can use `get(context)` method, which returns `Single` value:
```java
ReactiveAirplaneMode.create()
.get(context)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(isOn -> textView.setText(String.format("Airplane mode on: %s", isOn.toString())));
```If you want to check airplane mode **only once without using Reactive Streams**, just call `isAirplaneModeOn(context)` method:
```java
boolean isOn = ReactiveAirplaneMode.create().isAirplaneModeOn(context);
```Examples
--------Exemplary application is located in `app` directory of this repository.
Download
--------You can depend on the library through Maven:
```xml
com.github.pwittchen
reactiveairplanemode
0.0.1```
or through Gradle:
```groovy
dependencies {
compile 'com.github.pwittchen:reactiveairplanemode:0.0.1'
}
```Tests
-----Tests are available in `library/src/test/java/` directory and can be executed on JVM without any emulator or Android device from Android Studio or CLI with the following command:
```
./gradlew test
```To generate test coverage report, run the following command:
```
./gradlew test jacocoTestReport
```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.
Changelog
---------See [CHANGELOG.md](https://github.com/pwittchen/ReactiveAirplaneMode/blob/master/CHANGELOG.md) file.
Releasing
---------See [RELEASING.md](https://github.com/pwittchen/ReactiveAirplaneMode/blob/master/RELEASING.md) file.
References
----------
- https://stackoverflow.com/questions/4319212/how-can-one-detect-airplane-mode-on-android
- https://stackoverflow.com/questions/5533881/toggle-airplane-mode-in-androidLicense
-------Copyright 2017 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 athttp://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.