From a99cc3f74209b0640c0ecd0abc9c156c85b49939 Mon Sep 17 00:00:00 2001 From: Shahroz Khan Date: Fri, 29 Apr 2022 16:58:56 +0500 Subject: [PATCH 1/2] added alternative route for activity name --- .../main/java/io/customer/sdk/CustomerIO.kt | 7 ++++++- .../sdk/extensions/StringExtensions.kt | 9 +++++++++ .../sdk/extensions/StringExtensionsTest.kt | 19 +++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 sdk/src/main/java/io/customer/sdk/extensions/StringExtensions.kt create mode 100644 sdk/src/test/java/io/customer/sdk/extensions/StringExtensionsTest.kt diff --git a/sdk/src/main/java/io/customer/sdk/CustomerIO.kt b/sdk/src/main/java/io/customer/sdk/CustomerIO.kt index 58a93275..877df99f 100644 --- a/sdk/src/main/java/io/customer/sdk/CustomerIO.kt +++ b/sdk/src/main/java/io/customer/sdk/CustomerIO.kt @@ -13,6 +13,7 @@ import io.customer.sdk.data.model.Region import io.customer.sdk.data.request.MetricEvent import io.customer.sdk.data.store.CustomerIOStore import io.customer.sdk.di.CustomerIOComponent +import io.customer.sdk.extensions.getScreenNameFromActivity /** Welcome to the Customer.io Android SDK! @@ -205,7 +206,11 @@ class CustomerIO internal constructor( activity.componentName, PackageManager.GET_META_DATA ) val activityLabel = info.loadLabel(packageManager) - screen(activityLabel.toString(), attributes) + + val screenName = activityLabel.toString().ifEmpty { + activity::class.java.simpleName.getScreenNameFromActivity() + } + screen(screenName, attributes) } catch (e: PackageManager.NameNotFoundException) { ActionUtils.getErrorAction(ErrorResult(error = ErrorDetail(message = "Activity Not Found: $e"))) } catch (e: Exception) { diff --git a/sdk/src/main/java/io/customer/sdk/extensions/StringExtensions.kt b/sdk/src/main/java/io/customer/sdk/extensions/StringExtensions.kt new file mode 100644 index 00000000..3779fe8f --- /dev/null +++ b/sdk/src/main/java/io/customer/sdk/extensions/StringExtensions.kt @@ -0,0 +1,9 @@ +package io.customer.sdk.extensions + +fun String.getScreenNameFromActivity(): String { + val regex = Regex( + pattern = "Activity|ListActivity|FragmentActivity|DialogActivity", + option = RegexOption.IGNORE_CASE + ) + return this.replace(regex, "") +} diff --git a/sdk/src/test/java/io/customer/sdk/extensions/StringExtensionsTest.kt b/sdk/src/test/java/io/customer/sdk/extensions/StringExtensionsTest.kt new file mode 100644 index 00000000..d50a120a --- /dev/null +++ b/sdk/src/test/java/io/customer/sdk/extensions/StringExtensionsTest.kt @@ -0,0 +1,19 @@ +package io.customer.sdk.extensions + +import org.amshove.kluent.shouldBeEqualTo +import org.junit.Test + +internal class StringExtensionsTest { + + @Test + fun verify_activityScreenFormatting_expectFormattedScreenName() { + + "HomeActivity".getScreenNameFromActivity() shouldBeEqualTo "Home" + "ActivityHome".getScreenNameFromActivity() shouldBeEqualTo "Home" + "ActivityHomeActivity".getScreenNameFromActivity() shouldBeEqualTo "Home" + "ItemsListActivity".getScreenNameFromActivity() shouldBeEqualTo "Items" + "ItemsDialogActivity".getScreenNameFromActivity() shouldBeEqualTo "Items" + "MapFragmentActivity".getScreenNameFromActivity() shouldBeEqualTo "Map" + + } +} From 1b20e9bbd55c84d14cb9e0714ff86722020441f3 Mon Sep 17 00:00:00 2001 From: Shahroz Khan Date: Fri, 29 Apr 2022 17:04:33 +0500 Subject: [PATCH 2/2] Ktlint cleanup --- base/src/main/java/io/customer/base/comunication/Action.kt | 1 - base/src/main/java/io/customer/base/comunication/Call.kt | 1 - base/src/main/java/io/customer/base/utils/ActionUtils.kt | 2 -- .../src/main/kotlin/io.customer/android/Dependencies.kt | 1 - .../messagingpush/CustomerIOFirebaseMessagingService.kt | 2 -- .../messagingpush/CustomerIOPushNotificationHandler.kt | 6 ------ .../io/customer/messagingpush/CustomerIOPushReceiver.kt | 1 - .../java/io/customer/sdk/extensions/StringExtensionsTest.kt | 1 - 8 files changed, 15 deletions(-) diff --git a/base/src/main/java/io/customer/base/comunication/Action.kt b/base/src/main/java/io/customer/base/comunication/Action.kt index c5870b70..714cec94 100644 --- a/base/src/main/java/io/customer/base/comunication/Action.kt +++ b/base/src/main/java/io/customer/base/comunication/Action.kt @@ -40,4 +40,3 @@ interface Action { fun onResult(result: Result) } } - diff --git a/base/src/main/java/io/customer/base/comunication/Call.kt b/base/src/main/java/io/customer/base/comunication/Call.kt index ade905a9..5b395fdb 100644 --- a/base/src/main/java/io/customer/base/comunication/Call.kt +++ b/base/src/main/java/io/customer/base/comunication/Call.kt @@ -39,4 +39,3 @@ public interface Call { public fun onResult(result: Result) } } - diff --git a/base/src/main/java/io/customer/base/utils/ActionUtils.kt b/base/src/main/java/io/customer/base/utils/ActionUtils.kt index 3cfc3469..cc3b9733 100644 --- a/base/src/main/java/io/customer/base/utils/ActionUtils.kt +++ b/base/src/main/java/io/customer/base/utils/ActionUtils.kt @@ -46,7 +46,5 @@ abstract class ActionUtils { override fun cancel() {} } } - } - } diff --git a/buildSrc/src/main/kotlin/io.customer/android/Dependencies.kt b/buildSrc/src/main/kotlin/io.customer/android/Dependencies.kt index 0486be0c..dc0d65d6 100644 --- a/buildSrc/src/main/kotlin/io.customer/android/Dependencies.kt +++ b/buildSrc/src/main/kotlin/io.customer/android/Dependencies.kt @@ -41,5 +41,4 @@ object Dependencies { const val okhttpMockWebserver = "com.squareup.okhttp3:mockwebserver:${Versions.OKHTTP}" const val okhttpLoggingInterceptor = "com.squareup.okhttp3:logging-interceptor:${Versions.OKHTTP}" - } diff --git a/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOFirebaseMessagingService.kt b/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOFirebaseMessagingService.kt index a88aca44..7bfea982 100644 --- a/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOFirebaseMessagingService.kt +++ b/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOFirebaseMessagingService.kt @@ -64,7 +64,6 @@ class CustomerIOFirebaseMessagingService : FirebaseMessagingService() { } } - private fun handleMessageReceived( context: Context, remoteMessage: RemoteMessage, @@ -73,7 +72,6 @@ class CustomerIOFirebaseMessagingService : FirebaseMessagingService() { val handler = CustomerIOPushNotificationHandler(remoteMessage = remoteMessage) return handler.handleMessage(context, handleNotificationTrigger) } - } override fun onNewToken(token: String) { diff --git a/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOPushNotificationHandler.kt b/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOPushNotificationHandler.kt index 07e7d316..b1818a8c 100644 --- a/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOPushNotificationHandler.kt +++ b/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOPushNotificationHandler.kt @@ -36,7 +36,6 @@ class CustomerIOPushNotificationHandler(private val remoteMessage: RemoteMessage const val BODY_KEY = "body" const val NOTIFICATION_REQUEST_CODE = "requestCode" - } private val bundle: Bundle by lazy { @@ -87,7 +86,6 @@ class CustomerIOPushNotificationHandler(private val remoteMessage: RemoteMessage return true } - @SuppressLint("LaunchActivityFromNotification") private fun handleNotification( context: Context @@ -135,7 +133,6 @@ class CustomerIOPushNotificationHandler(private val remoteMessage: RemoteMessage val notificationManager = context.getSystemService(FirebaseMessagingService.NOTIFICATION_SERVICE) as NotificationManager - val channelName = "$applicationName Notifications" // Since android Oreo notification channel is needed. @@ -165,7 +162,6 @@ class CustomerIOPushNotificationHandler(private val remoteMessage: RemoteMessage notificationManager.notify(requestCode, notification) } - private fun addImage( imageUrl: String, builder: NotificationCompat.Builder, @@ -188,6 +184,4 @@ class CustomerIOPushNotificationHandler(private val remoteMessage: RemoteMessage builder.setStyle(style) } } - - } diff --git a/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOPushReceiver.kt b/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOPushReceiver.kt index e0657985..a0eacb47 100644 --- a/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOPushReceiver.kt +++ b/messagingpush/src/main/java/io/customer/messagingpush/CustomerIOPushReceiver.kt @@ -78,4 +78,3 @@ class CustomerIOPushReceiver : BroadcastReceiver() { } } } - diff --git a/sdk/src/test/java/io/customer/sdk/extensions/StringExtensionsTest.kt b/sdk/src/test/java/io/customer/sdk/extensions/StringExtensionsTest.kt index d50a120a..36db80d8 100644 --- a/sdk/src/test/java/io/customer/sdk/extensions/StringExtensionsTest.kt +++ b/sdk/src/test/java/io/customer/sdk/extensions/StringExtensionsTest.kt @@ -14,6 +14,5 @@ internal class StringExtensionsTest { "ItemsListActivity".getScreenNameFromActivity() shouldBeEqualTo "Items" "ItemsDialogActivity".getScreenNameFromActivity() shouldBeEqualTo "Items" "MapFragmentActivity".getScreenNameFromActivity() shouldBeEqualTo "Map" - } }