Skip to content

Commit 3083284

Browse files
Merge pull request #34 from GetStream/bugfix/rahullohra/content-provider-anr
Remove ANR by replacing stream logger with android.util.Log in content provider path
2 parents b1671a0 + 204a031 commit 3083284

File tree

3 files changed

+27
-32
lines changed

3 files changed

+27
-32
lines changed

stream-android-push-delegate/src/androidMain/kotlin/io/getstream/android/push/delegate/AndroidPushDelegateProvider.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ import android.content.pm.PackageManager
2323
import android.database.Cursor
2424
import android.net.Uri
2525
import android.os.Bundle
26+
import android.util.Log
2627
import io.getstream.android.push.delegate.PushDelegateProvider.Companion.METADATA_VALUE
2728
import io.getstream.android.push.delegate.PushDelegateProvider.Companion._delegates
2829
import io.getstream.android.push.delegate.PushDelegateProvider.Companion.isInitialized
29-
import io.getstream.log.taggedLogger
3030

3131
public class AndroidPushDelegateProvider : PushDelegateProvider, ContentProvider() {
3232

33-
private val logger by taggedLogger("Push:Delegate")
33+
private val TAG = "Push:Delegate"
3434

3535
override fun onCreate(): Boolean {
3636
initializeDelegates()
@@ -69,13 +69,12 @@ public class AndroidPushDelegateProvider : PushDelegateProvider, ContentProvider
6969
?.getDeclaredConstructor()
7070
?.newInstance() as? PushDelegate
7171
} catch (e: ClassNotFoundException) {
72-
logger.e(e) { "PushDelegate not created for '$this'" }
72+
Log.e(TAG, "PushDelegate not created for '$this'", e)
7373
null
7474
} catch (e: NoSuchMethodException) {
75-
logger.e(e) { "PushDelegate not created for '$this'" }
75+
Log.e(TAG, "PushDelegate not created for '$this'", e)
7676
null
7777
}
78-
.also { logger.d { "PushDelegate created for '$this' ($it)" } }
7978

8079
override fun query(
8180
uri: Uri,

stream-android-push-permissions/src/androidMain/kotlin/io/getstream/android/push/permissions/NotificationPermissionManager.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,33 +16,33 @@
1616
package io.getstream.android.push.permissions
1717

1818
import android.app.Application
19-
import io.getstream.log.taggedLogger
19+
import android.util.Log
2020

2121
public class NotificationPermissionManager private constructor(
2222
private val pushNotificationPermissionRequester: PushNotificationPermissionRequester,
2323
private val requestPermissionOnAppLaunch: () -> Boolean,
2424
private val onPermissionStatus: (NotificationPermissionStatus) -> Unit
2525
) : PushNotificationPermissionRequester.PushNotificationPermissionCallback {
26-
private val logger by taggedLogger("Push:Notifications-PM")
26+
private val TAG = "Push:Notifications-PM"
2727
private var started = false
2828

2929
private fun initialize() {
30-
logger.d { "[initialize] no args" }
30+
Log.d(TAG, "[initialize] no args")
3131
pushNotificationPermissionRequester.addCallback(this)
3232
}
3333

3434
public fun start() {
35-
logger.d { "[start] no args" }
35+
Log.d(TAG, "[start] no args")
3636
requestPermission()
3737
}
3838

3939
public fun stop() {
40-
logger.d { "[stop] no args" }
40+
Log.d(TAG, "[stop] no args")
4141
started = false
4242
}
4343

4444
override fun onAppLaunched() {
45-
logger.d { "[onAppLaunched] no args" }
45+
Log.d(TAG, "[onAppLaunched] no args")
4646
if (requestPermissionOnAppLaunch()) {
4747
requestPermission()
4848
}

stream-android-push-permissions/src/androidMain/kotlin/io/getstream/android/push/permissions/PushNotificationPermissionRequester.kt

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,125 +22,121 @@ import android.app.Application
2222
import android.content.pm.PackageManager
2323
import android.os.Build
2424
import android.os.Bundle
25+
import android.util.Log
2526
import android.view.View
2627
import android.view.ViewGroup
2728
import androidx.activity.ComponentActivity
2829
import androidx.activity.result.ActivityResultLauncher
2930
import androidx.activity.result.contract.ActivityResultContracts
3031
import androidx.core.app.ActivityCompat
3132
import androidx.core.content.ContextCompat
32-
import io.getstream.log.taggedLogger
3333
import kotlinx.coroutines.CoroutineScope
3434
import kotlinx.coroutines.Dispatchers
3535
import kotlinx.coroutines.launch
3636

3737
internal class PushNotificationPermissionRequester private constructor() : ActivityLifecycleCallbacks() {
38-
private val logger by taggedLogger("Push:CurrentActivityProvider")
38+
private val TAG = "PnPermissionRequester"
3939
private val pushNotificationPermissionCallbacks = mutableListOf<PushNotificationPermissionCallback>()
4040
private var currentActivity: Activity? = null
4141
private val permissionContract = ActivityResultContracts.RequestPermission()
4242
private val uiScope by lazy { CoroutineScope(Dispatchers.Main) }
4343

4444
fun addCallback(callback: PushNotificationPermissionCallback) {
45-
logger.d { "[addCallback] callback: $callback" }
4645
pushNotificationPermissionCallbacks.add(callback)
4746
}
4847

4948
override fun onActivityCreated(
5049
activity: Activity,
5150
bunlde: Bundle?
5251
) {
53-
logger.v { "[onActivityCreated] activity: $activity" }
52+
Log.v(TAG, "[onActivityCreated] activity: $activity")
5453
super.onActivityCreated(activity, bunlde)
5554
currentActivity = activity
5655
}
5756

5857
override fun onActivityStarted(activity: Activity) {
59-
logger.v { "[onActivityStarted] activity: $activity" }
58+
Log.v(TAG, "[onActivityStarted] activity: $activity")
6059
currentActivity = activity
6160
activity.registerPermissionCallback()
6261
super.onActivityStarted(activity)
6362
}
6463

6564
override fun onActivityResumed(activity: Activity) {
66-
logger.v { "[onActivityResumed] activity: $activity" }
65+
Log.v(TAG, "[onActivityResumed] activity: $activity")
6766
currentActivity = activity
6867
super.onActivityResumed(activity)
6968
}
7069

7170
override fun onActivityStopped(activity: Activity) {
72-
logger.v { "[onActivityStopped] activity: $activity" }
71+
Log.v(TAG, "[onActivityStopped] activity: $activity")
7372
activity.unregisterPermissionCallback()
7473
super.onActivityStopped(activity)
7574
}
7675

7776
override fun onFirstActivityStarted(activity: Activity) {
78-
logger.i { "[onFirstActivityStarted] activity: $activity" }
77+
Log.i(TAG, "[onFirstActivityStarted] activity: $activity")
7978
super.onFirstActivityStarted(activity)
8079
pushNotificationPermissionCallbacks.forEach { it.onAppLaunched() }
8180
}
8281

8382
override fun onLastActivityStopped(activity: Activity) {
84-
logger.i { "[onLastActivityStopped] activity: $activity" }
83+
Log.i(TAG, "[onLastActivityStopped] activity: $activity")
8584
super.onLastActivityStopped(activity)
8685
currentActivity = null
8786
}
8887

8988
internal fun requestPermission() {
90-
logger.d { "[requestPermission]" }
9189
uiScope.launch { currentActivity?.requestPermission() }
9290
}
9391

9492
internal fun onPermissionStatus(permissionStatus: NotificationPermissionStatus) {
95-
logger.d { "[onPermissionStatus] permissionStatus: $permissionStatus" }
93+
Log.v(TAG, "[onPermissionStatus] permissionStatus: $permissionStatus")
9694
pushNotificationPermissionCallbacks.forEach { it.onPermissionStatusChanged(permissionStatus) }
9795
}
9896

9997
private fun Activity.registerPermissionCallback() {
10098
if (this !is ComponentActivity) return
10199
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) return
102-
logger.i { "[registerPermissionCallback] activity: ${this::class.simpleName}" }
100+
Log.i(TAG, "[registerPermissionCallback] activity: ${this::class.simpleName}")
103101
val launcher =
104102
registerForActivityResult(permissionContract) { isGranted: Boolean ->
105-
logger.v { "[registerPermissionCallback] completed: $isGranted" }
106103
when (isGranted) {
107104
true -> onPermissionStatus(NotificationPermissionStatus.GRANTED)
108105
else -> onPermissionStatus(NotificationPermissionStatus.DENIED)
109106
}
110107
}
111-
logger.v { "[registerPermissionCallback] launcher: $launcher" }
108+
Log.v(TAG, "[registerPermissionCallback] launcher: $launcher")
112109
putActivityResultLauncher(launcher)
113110
}
114111

115112
private fun Activity.unregisterPermissionCallback() {
116113
if (this !is ComponentActivity) return
117-
logger.i { "[unregisterPermissionCallback] activity: ${this::class.simpleName}" }
114+
Log.i(TAG, "[unregisterPermissionCallback] activity: ${this::class.simpleName}")
118115
val launcher = getActivityResultLauncher()
119-
logger.v { "[unregisterPermissionCallback] found launcher: $launcher" }
116+
Log.d(TAG, "[unregisterPermissionCallback] found launcher: $launcher")
120117
launcher?.unregister()
121118
}
122119

123120
private fun Activity.requestPermission() {
124-
logger.d { "[requestPermission] no args" }
125121
when {
126122
Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU -> {
127-
logger.w { "[requestPermission] not supported on this version" }
123+
Log.w(TAG, "[requestPermission] not supported on this version")
128124
onPermissionStatus(NotificationPermissionStatus.GRANTED)
129125
}
130126
ContextCompat.checkSelfPermission(
131127
this,
132128
Manifest.permission.POST_NOTIFICATIONS
133129
) == PackageManager.PERMISSION_GRANTED -> {
134-
logger.v { "[requestPermission] already granted" }
130+
Log.v(TAG, "[requestPermission] already granted")
135131
onPermissionStatus(NotificationPermissionStatus.GRANTED)
136132
}
137133
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.POST_NOTIFICATIONS) -> {
138-
logger.i { "[requestPermission] rationale requested" }
134+
Log.i(TAG, "[requestPermission] rationale requested")
139135
onPermissionStatus(NotificationPermissionStatus.RATIONALE_NEEDED)
140136
}
141137
else -> {
142138
val launcher = (this as? ComponentActivity)?.getActivityResultLauncher()
143-
logger.i { "[requestPermission] launcher: $launcher" }
139+
Log.i(TAG, "[requestPermission] launcher: $launcher")
144140
launcher?.launch(Manifest.permission.POST_NOTIFICATIONS)
145141
onPermissionStatus(NotificationPermissionStatus.REQUESTED)
146142
}

0 commit comments

Comments
 (0)