Android library monitoring battery state of the device with RxJava and RxKotlin
- Usage
- Examples
- Download
- Tests
- Code style
- Static code analysis
- JavaDoc
- Changelog
- Releasing
- References
- Credits
- License
In the Kotlin application, you can use library as follows:
RxBattery
.observe(context)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { textView.text = it.toString() }
In the Java application, you can use library as follows:
RxBattery
.observe(context)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(batteryState -> {
textView.setText(batteryState.toString());
});
BatteryState
data class looks as follows:
data class BatteryState(
val statusCode: Int,
val pluggedCode: Int,
val healthCode: Int,
val level: Int,
val temperature: Int,
val voltage: Int,
) {
fun status(): Status { ... }
fun plugged(): Plugged { ... }
fun health(): Health { ... }
}
All Integer
values returned by BatteryState
object are reflected in constants of BatteryManager
class from the Android SDK. Enums Status
, Plugged
and Health
represents battery state translated from integer codes from BatteryManager
class.
Exemplary Kotlin application is located in app-kotlin
directory.
You can depend on the library through Gradle:
dependencies {
implementation 'com.github.pwittchen:rxbattery:0.1.0'
}
Tests are available in library/src/test/kotlin/
directory and can be executed on JVM without any emulator or Android device from Android Studio or CLI with the following command:
./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, FindBugs, PMD, Lint, KtLint and Detekt. It can be executed with command:
./gradlew check
Reports from analysis are generated in library/build/reports/
directory.
Documentation can be generated as follows:
./gradlew dokka
Output will be generated in library/build/javadoc
JavaDoc can be viewed on-line at https://pwittchen.github.io/RxBattery/library/
See CHANGELOG.md file.
See RELEASING.md file.
- https://developer.android.com/training/monitoring-device-state/index.html
- https://developer.android.com/training/monitoring-device-state/battery-monitoring.html
- https://developer.android.com/reference/android/os/BatteryManager
- https://developer.android.com/studio/profile/battery-historian.html
- https://stackoverflow.com/questions/3291655/get-battery-level-and-state-in-android
- https://stackoverflow.com/questions/25932677/proper-optimized-way-to-monitor-battery-level-in-android
- https://stackoverflow.com/questions/32608505/broadcast-receiver-monitoring-the-battery-level-and-charging-state
- https://github.com/jaredsburrows/android-gradle-kotlin-app-template
- http://wittchen.io/2018/08/19/writing-my-first-library-in-kotlin/
Logo of the project was created by @Yasujizr.
Copyright 2018 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.