Coverage Summary for Class: MindboxCoreStarter (cloud.mindbox.mindbox_sdk_starter_core)

Class Class, % Method, % Branch, % Line, % Instruction, %
MindboxCoreStarter 0% (0/1) 0% (0/8) 0% (0/10) 0% (0/31) 0% (0/171)


 package cloud.mindbox.mindbox_sdk_starter_core
 
 import android.app.Activity
 import android.app.Application
 import android.content.Context
 import cloud.mindbox.mobile_sdk.Mindbox
 import cloud.mindbox.mobile_sdk.logger.Level
 import cloud.mindbox.mobile_sdk.pushes.MindboxPushService
 
 /**
  * A object for internal sdk work only. Do not use it
  * */
 public object MindboxCoreStarter {
 
     private fun getNotificationData(application: Application): MindboxNotificationConfig =
         application.applicationContext.let { context ->
             MindboxNotificationConfig(
                 channelId = context.getDefaultChannelId(),
                 channelName = context.getDefaultChannelName(),
                 channelDescription = context.getDefaultChannelDescription(),
                 smallIcon = getDefaultSmallIcon(),
                 defaultActivity = getLauncherActivity(application)
             )
         }
 
     /**
      * A method for internal sdk work only. Do not use it
      * */
     public fun onMessageReceived(application: Application, remoteMessage: Any?) {
         val notificationConfig = runCatching { getNotificationData(application) }.getOrElse { exception ->
             Mindbox.writeLog(exception.message.toString(), Level.ERROR)
             return
         }
         notificationConfig.defaultActivity?.let { defaultActivity ->
             Mindbox.handleRemoteMessage(
                 context = application.applicationContext,
                 activities = notificationConfig.activities,
                 message = remoteMessage,
                 channelId = notificationConfig.channelId,
                 channelName = notificationConfig.channelName,
                 pushSmallIcon = notificationConfig.smallIcon,
                 defaultActivity = defaultActivity,
                 channelDescription = notificationConfig.channelDescription
             )
         } ?: Mindbox.writeLog("defaultActivity is null when try show notification in core starter", Level.ERROR)
     }
 
     /**
      * A method for internal sdk work only. Do not use it
      * */
     public fun onNewToken(context: Context, token: String, provider: MindboxPushService) {
         Mindbox.updatePushToken(context, token, provider)
     }
 
     private fun getLauncherActivity(application: Application): Class<out Activity>? =
         application.packageManager
             .getLaunchIntentForPackage(application.packageName)
             ?.component
             ?.className
             ?.let { className ->
                 Class.forName(className).asSubclass(Activity::class.java)
             }
 
     private fun Context.getDefaultChannelId(): String = getString(R.string.mindbox_default_channel_id)
 
     private fun Context.getDefaultChannelName(): String = getString(R.string.mindbox_default_channel_name)
 
     private fun Context.getDefaultChannelDescription(): String = getString(R.string.mindbox_default_channel_description)
 
     private fun getDefaultSmallIcon(): Int = R.drawable.mindbox_notification_small_icon
 }