From 1215770898049133dd930f0c22680ccf2e47caed Mon Sep 17 00:00:00 2001 From: moezbhatti Date: Thu, 6 Jun 2019 19:43:59 -0400 Subject: [PATCH] Respect wantBlock param from SIA --- .../manager/ExternalBlockingManagerImpl.kt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/data/src/main/java/com/moez/QKSMS/manager/ExternalBlockingManagerImpl.kt b/data/src/main/java/com/moez/QKSMS/manager/ExternalBlockingManagerImpl.kt index 4daf184f..2b8e238d 100644 --- a/data/src/main/java/com/moez/QKSMS/manager/ExternalBlockingManagerImpl.kt +++ b/data/src/main/java/com/moez/QKSMS/manager/ExternalBlockingManagerImpl.kt @@ -22,6 +22,7 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.ServiceConnection +import android.os.Bundle import android.os.Handler import android.os.IBinder import android.os.Message @@ -102,9 +103,10 @@ class ExternalBlockingManagerImpl @Inject constructor( val message = Message().apply { what = GET_NUMBER_RATING data = bundleOf("number" to address) - replyTo = Messenger(IncomingHandler { rating -> - subject.onSuccess(rating == RATING_NEGATIVE) - Timber.v("Should block: ${rating == RATING_NEGATIVE}") + replyTo = Messenger(IncomingHandler { response -> + val shouldBlock = response.rating == RATING_NEGATIVE || response.wantBlock + subject.onSuccess(shouldBlock) + Timber.v("Should block: $shouldBlock") // We're done, so unbind the service if (isBound && serviceMessenger != null) { @@ -122,10 +124,15 @@ class ExternalBlockingManagerImpl @Inject constructor( } } - private class IncomingHandler(private val callback: (rating: Int) -> Unit) : Handler() { + private class IncomingHandler(private val callback: (response: Response) -> Unit) : Handler() { + class Response(bundle: Bundle) { + val rating: Int = bundle.getInt("rating") + val wantBlock = bundle.getInt("wantBlock") == 1 + } + override fun handleMessage(msg: Message) { when (msg.what) { - GET_NUMBER_RATING -> callback(msg.data.getInt("rating")) + GET_NUMBER_RATING -> callback(Response(msg.data)) else -> super.handleMessage(msg) } }