ParkSangGwon / TedPermission

Easy check permission library for Android Marshmallow
1.74k stars 238 forks source link

Support RxJava3 #119

Closed zmunm closed 3 years ago

zmunm commented 3 years ago

The RxJava docs mention the following:

The 2.x version is in maintenance mode and will be supported only through bugfixes until February 28, 2021. No new features, behavior changes or documentation adjustments will be accepted or applied to 2.x.

Is there any plans for RxJava3?

sauravexodus commented 3 years ago

I implemented the wrappers myself.

import android.content.Context
import com.gun0912.tedpermission.PermissionBuilder
import com.gun0912.tedpermission.PermissionListener
import com.gun0912.tedpermission.TedPermissionBase
import com.gun0912.tedpermission.TedPermissionResult
import io.reactivex.rxjava3.core.Single

class TedRx3Permission : TedPermissionBase() {
    companion object {
        fun with(context: Context): Builder {
            return Builder(context)
        }
    }

    class Builder constructor(context: Context): PermissionBuilder<Builder>(context) {
        fun request(): Single<TedPermissionResult> {
            return Single.create { emitter ->
                val listener: PermissionListener = object : PermissionListener {
                    override fun onPermissionGranted() {
                        emitter.onSuccess(TedPermissionResult(null))
                    }

                    override fun onPermissionDenied(deniedPermissions: List<String>) {
                        emitter.onSuccess(TedPermissionResult(deniedPermissions))
                    }
                }
                try {
                    setPermissionListener(listener)
                    checkPermissions()
                } catch (exception: Exception) {
                    emitter.onError(exception)
                }
            }
        }
    }
}
ParkSangGwon commented 3 years ago

@zmunm Now you can use tedpermission-rx3 implementation 'io.github.ParkSangGwon:tedpermission-rx3:2.3.0' https://github.com/ParkSangGwon/TedPermission#rxjava3