Giter Site home page Giter Site logo

karczews / rxbroadcastreceiver Goto Github PK

View Code? Open in Web Editor NEW
29.0 4.0 5.0 190 KB

Simple RxJava2 binding for Android BroadcastReceiver

License: Apache License 2.0

Java 95.12% Shell 4.88%
rxjava2-binding android-broadcastreceiver android reactivex reactive-extensions

rxbroadcastreceiver's Introduction

ReactiveBroadcast

Simple RxJava2 binding for Android BroadcastReceiver

Build Status codecov Maven Central Nexus Snapshots License

Usage

RxBroadcastReceivers.fromIntentFilter(context, intentFilter)
        .subscribe(intent -> {
            // do something with broadcast
        });

What's new:

Download

To use library with Gradle

dependencies {
  implementation 'com.github.karczews:rx2-broadcast-receiver:1.0.6'
}

or using Maven:

<dependency>
    <groupId>com.github.karczews</groupId>
    <artifactId>rx2-broadcast-receiver</artifactId>
    <version>1.0.6</version>
</dependency>

rxbroadcastreceiver's People

Contributors

ajoz avatar carlonzo avatar dependabot-preview[bot] avatar ened avatar karczews avatar krzysztofkarczewski-tomtom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

rxbroadcastreceiver's Issues

DeadSystemException during dispose

I'm seeing small amount of DeadSystemException on Android TV devices.
Most probably device is going to power off and VM is dying already when RxBroadcastReceiver is trying to dispose.

Android: 8.0.0
Android Build: 31100 OTT1.180130.001
Manufacturer: SHARP
Model: AQUOS-4KTVX17
Thread: main-2

java.lang.RuntimeException: Unable to stop service by.stari4ek.iptv4atv.tvinput.service.IptvTvInputService@4b1810b: java.lang.RuntimeException: android.os.DeadSystemException
	at android.app.ActivityThread.handleStopService(ActivityThread.java:3587)
	at android.app.ActivityThread.-wrap26(ActivityThread.java:0)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1703)
	at android.os.Handler.dispatchMessage(Handler.java:105)
	at android.os.Looper.loop(Looper.java:164)
	at android.app.ActivityThread.main(ActivityThread.java:6541)
	at java.lang.reflect.Method.invoke(Method.java)
	at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: java.lang.RuntimeException: android.os.DeadSystemException
	at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1438)
	at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:639)
	at com.github.karczews.rxbroadcastreceiver.RxBroadcastReceiver$ReceiverDisposable.dispose(RxBroadcastReceiver.java:71)
	at io.reactivex.internal.disposables.DisposableHelper.dispose(DisposableHelper.java:124)
	
        ... bunch of own Rx operators

	at by.stari4ek.iptv4atv.tvinput.service.IptvTvInputService.onDestroy(IptvTvInputService.java:37)
	at android.app.ActivityThread.handleStopService(ActivityThread.java:3569)

I'd expect that unregistering BroadcastReceiver should be wrapped and onError emitted (or swallowed?)

RxJava3 Support

Thanks for this cool library! Are you planning to support RxJava3 anytime?

Maven Local Publishing

To add some additional possibilities for testing the library, we could add publishing to the local repository. Nothing really sophisticated.

We could use android-maven-publish Gradle plugin for it. It would involve adding it to the main build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.dicedmelon.gradle:jacoco-android:0.1.1'
        classpath 'digital.wup:android-maven-publish:3.3.0' //<---- this one
    }
}

To keep everything inline with the existing mvn-publish configuration we could add a script:
gradle-mvn-local.gradle that would contain the configuration:

apply plugin: 'digital.wup.android-maven-publish'

publishing {
    publications {
        mavenAar(MavenPublication) {
            from components.android
            groupId GROUP
            artifactId POM_ARTIFACT_ID
            version "${VERSION_NAME}-LOCAL"
        }
    }
}

This would produce artifacts in the .m2/ directory. For example for the 1.0.5-SNAPSHOT it would be 1.0.5-SNAPSHOT-LOCAL

Manifest merger fails with error.

Hey. My app's manifest contains following lines:

  • android:allowBackup="false"
  • android:supportsRtl="false"

And it can't compile because of these issues:
image
image

Now I use tools:replace="android:allowBackup, android:supportsRtl" as a quick workaround but as I understand that's not the desired behavior.

Could you please fix?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.