diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6c647d4..19a171c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,7 +49,11 @@ + android:exported="true"> + + + + ( ActivityTransition.Builder() .setActivityType(DetectedActivity.IN_VEHICLE) @@ -95,8 +95,8 @@ class ActivityHandler private constructor(private val context: Context) { } private fun createPendingIntent(): PendingIntent = - with(Intent(TRANSITIONS_RECEIVER_ACTION)) { - setClass(context, ActivityReceiver::class.java) + with(Intent(context, ActivityReceiver::class.java)) { + action = TRANSITIONS_RECEIVER_ACTION PendingIntent.getBroadcast( context, ACTIVITY_REQUEST_CODE, diff --git a/app/src/main/java/com/javinator9889/handwashingreminder/gms/activity/ActivityReceiver.kt b/app/src/main/java/com/javinator9889/handwashingreminder/gms/activity/ActivityReceiver.kt index 7ff9776..745a03e 100644 --- a/app/src/main/java/com/javinator9889/handwashingreminder/gms/activity/ActivityReceiver.kt +++ b/app/src/main/java/com/javinator9889/handwashingreminder/gms/activity/ActivityReceiver.kt @@ -21,7 +21,6 @@ package com.javinator9889.handwashingreminder.gms.activity import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import android.text.TextUtils import androidx.annotation.StringRes import androidx.emoji.text.EmojiCompat import com.google.android.gms.location.ActivityTransition @@ -35,42 +34,45 @@ import com.javinator9889.handwashingreminder.utils.goAsync import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import timber.log.Timber class ActivityReceiver : BroadcastReceiver() { /** * {@inheritDoc} */ override fun onReceive(context: Context, intent: Intent) { - if (ActivityTransitionResult.hasResult(intent) - && TextUtils.equals(TRANSITIONS_RECEIVER_ACTION, intent.action)) { + Timber.d("Detected user activity - ${intent.action}") + if (ActivityTransitionResult.hasResult(intent)) { val emojiLoader = EmojiLoader.loadAsync(context) - val result = ActivityTransitionResult.extractResult(intent)!! - for (event in result.transitionEvents) { - if (event.transitionType != - ActivityTransition.ACTIVITY_TRANSITION_EXIT || - event.activityType == DetectedActivity.UNKNOWN - ) - continue - val notificationHandler = NotificationsHandler( - context, - ACTIVITY_CHANNEL_ID, - context.getString( - R.string.activity_notification_channel_name - ), - context.getString( - R.string.activity_notification_channel_desc + val result = ActivityTransitionResult.extractResult(intent) + result?.let { + for (event in result.transitionEvents) { + if (event.transitionType != + ActivityTransition.ACTIVITY_TRANSITION_EXIT || + event.activityType == DetectedActivity.UNKNOWN ) - ) - goAsync { - putNotification( - notificationHandler, - emojiLoader, - event.activityType, - context + continue + val notificationHandler = NotificationsHandler( + context, + ACTIVITY_CHANNEL_ID, + context.getString( + R.string.activity_notification_channel_name + ), + context.getString( + R.string.activity_notification_channel_desc + ) ) + goAsync { + putNotification( + notificationHandler, + emojiLoader, + event.activityType, + context + ) + } + break } - break - } + } ?: Timber.w("Received unmatched activity - $intent") } }