Package com.swrve.sdk

Class SwrveBase<T,​C extends SwrveConfigBase>

  • All Implemented Interfaces:
    android.app.Application.ActivityLifecycleCallbacks, ISwrveBase<T,​C>, ISwrveCampaignManager
    Direct Known Subclasses:
    Swrve

    public abstract class SwrveBase<T,​C extends SwrveConfigBase>
    extends java.lang.Object
    implements ISwrveBase<T,​C>
    Main base class implementation of the Swrve SDK.
    • Field Detail

      • SDK_PREFS_KEY_USER_ID

        public static final java.lang.String SDK_PREFS_KEY_USER_ID
        See Also:
        Constant Field Values
      • SDK_PREFS_KEY_TRACKING_STATE

        public static final java.lang.String SDK_PREFS_KEY_TRACKING_STATE
        See Also:
        Constant Field Values
      • SDK_PREFS_KEY_FLUSH_FREQ

        public static final java.lang.String SDK_PREFS_KEY_FLUSH_FREQ
        See Also:
        Constant Field Values
      • SDK_PREFS_KEY_FLUSH_DELAY

        public static final java.lang.String SDK_PREFS_KEY_FLUSH_DELAY
        See Also:
        Constant Field Values
      • SDK_PREFS_REFERRER_ID

        public static final java.lang.String SDK_PREFS_REFERRER_ID
        See Also:
        Constant Field Values
      • CACHE_REALTIME_USER_PROPERTIES

        public static final java.lang.String CACHE_REALTIME_USER_PROPERTIES
        See Also:
        Constant Field Values
      • CACHE_RESOURCES_DIFF

        public static final java.lang.String CACHE_RESOURCES_DIFF
        See Also:
        Constant Field Values
      • CACHE_AD_CAMPAIGNS_DEBUG

        public static final java.lang.String CACHE_AD_CAMPAIGNS_DEBUG
        See Also:
        Constant Field Values
      • CACHE_NOTIFICATION_CAMPAIGNS_DEBUG

        public static final java.lang.String CACHE_NOTIFICATION_CAMPAIGNS_DEBUG
        See Also:
        Constant Field Values
      • CACHE_USER_JOINED_TIME

        public static final java.lang.String CACHE_USER_JOINED_TIME
        See Also:
        Constant Field Values
      • CACHE_CAMPAIGNS_STATE

        public static final java.lang.String CACHE_CAMPAIGNS_STATE
        See Also:
        Constant Field Values
      • CACHE_DEVICE_PROP_KEY

        public static final java.lang.String CACHE_DEVICE_PROP_KEY
        See Also:
        Constant Field Values
      • SWRVE_DEVICE_NAME

        public static final java.lang.String SWRVE_DEVICE_NAME
        See Also:
        Constant Field Values
      • SWRVE_OS_VERSION

        public static final java.lang.String SWRVE_OS_VERSION
        See Also:
        Constant Field Values
      • SWRVE_DEVICE_WIDTH

        public static final java.lang.String SWRVE_DEVICE_WIDTH
        See Also:
        Constant Field Values
      • SWRVE_DEVICE_HEIGHT

        public static final java.lang.String SWRVE_DEVICE_HEIGHT
        See Also:
        Constant Field Values
      • SWRVE_DEVICE_DPI

        public static final java.lang.String SWRVE_DEVICE_DPI
        See Also:
        Constant Field Values
      • SWRVE_CONVERSATION_VERSION

        public static final java.lang.String SWRVE_CONVERSATION_VERSION
        See Also:
        Constant Field Values
      • SWRVE_ANDROID_DEVICE_XDPI

        public static final java.lang.String SWRVE_ANDROID_DEVICE_XDPI
        See Also:
        Constant Field Values
      • SWRVE_ANDROID_DEVICE_YDPI

        public static final java.lang.String SWRVE_ANDROID_DEVICE_YDPI
        See Also:
        Constant Field Values
      • SWRVE_UTC_OFFSET_SECONDS

        public static final java.lang.String SWRVE_UTC_OFFSET_SECONDS
        See Also:
        Constant Field Values
      • SWRVE_TIMEZONE_NAME

        public static final java.lang.String SWRVE_TIMEZONE_NAME
        See Also:
        Constant Field Values
      • SWRVE_SDK_VERSION

        public static final java.lang.String SWRVE_SDK_VERSION
        See Also:
        Constant Field Values
      • SWRVE_SDK_FLAVOUR

        public static final java.lang.String SWRVE_SDK_FLAVOUR
        See Also:
        Constant Field Values
      • SWRVE_INSTALL_DATE

        public static final java.lang.String SWRVE_INSTALL_DATE
        See Also:
        Constant Field Values
      • SWRVE_SIM_OPERATOR_NAME

        public static final java.lang.String SWRVE_SIM_OPERATOR_NAME
        See Also:
        Constant Field Values
      • SWRVE_SIM_OPERATOR_ISO_COUNTRY

        public static final java.lang.String SWRVE_SIM_OPERATOR_ISO_COUNTRY
        See Also:
        Constant Field Values
      • SWRVE_SIM_OPERATOR_CODE

        public static final java.lang.String SWRVE_SIM_OPERATOR_CODE
        See Also:
        Constant Field Values
      • SWRVE_DEVICE_REGION

        public static final java.lang.String SWRVE_DEVICE_REGION
        See Also:
        Constant Field Values
      • SWRVE_ANDROID_ID

        public static final java.lang.String SWRVE_ANDROID_ID
        See Also:
        Constant Field Values
      • SWRVE_NOTIFICATIONS_ENABLED

        public static final java.lang.String SWRVE_NOTIFICATIONS_ENABLED
        See Also:
        Constant Field Values
      • SWRVE_NOTIFICATIONS_IMPORTANCE

        public static final java.lang.String SWRVE_NOTIFICATIONS_IMPORTANCE
        See Also:
        Constant Field Values
      • SWRVE_NOTIFICATIONS_BUTTONS

        public static final java.lang.String SWRVE_NOTIFICATIONS_BUTTONS
        See Also:
        Constant Field Values
      • SWRVE_NOTIFICATIONS_ATTACHMENT

        public static final java.lang.String SWRVE_NOTIFICATIONS_ATTACHMENT
        See Also:
        Constant Field Values
      • SWRVE_CAN_RECEIVE_AUTH_PUSH

        public static final java.lang.String SWRVE_CAN_RECEIVE_AUTH_PUSH
        See Also:
        Constant Field Values
      • SWRVE_DEVICE_TYPE

        public static final java.lang.String SWRVE_DEVICE_TYPE
        See Also:
        Constant Field Values
      • SWRVE_TRACKING_STATE

        public static final java.lang.String SWRVE_TRACKING_STATE
        See Also:
        Constant Field Values
      • SWRVE_REFERRER_ID

        public static final java.lang.String SWRVE_REFERRER_ID
        See Also:
        Constant Field Values
      • BATCH_EVENT_KEY_USER

        public static final java.lang.String BATCH_EVENT_KEY_USER
        See Also:
        Constant Field Values
      • BATCH_EVENT_KEY_SESSION_TOKEN

        public static final java.lang.String BATCH_EVENT_KEY_SESSION_TOKEN
        See Also:
        Constant Field Values
      • BATCH_EVENT_KEY_VERSION

        public static final java.lang.String BATCH_EVENT_KEY_VERSION
        See Also:
        Constant Field Values
      • BATCH_EVENT_KEY_APP_VERSION

        public static final java.lang.String BATCH_EVENT_KEY_APP_VERSION
        See Also:
        Constant Field Values
      • BATCH_EVENT_KEY_UNIQUE_DEVICE_ID

        public static final java.lang.String BATCH_EVENT_KEY_UNIQUE_DEVICE_ID
        See Also:
        Constant Field Values
      • BATCH_EVENT_KEY_DATA

        public static final java.lang.String BATCH_EVENT_KEY_DATA
        See Also:
        Constant Field Values
      • EVENT_PAYLOAD_KEY

        public static final java.lang.String EVENT_PAYLOAD_KEY
        See Also:
        Constant Field Values
      • EVENT_TYPE_GENERIC_CAMPAIGN

        public static final java.lang.String EVENT_TYPE_GENERIC_CAMPAIGN
        See Also:
        Constant Field Values
      • GENERIC_EVENT_CAMPAIGN_TYPE_KEY

        public static final java.lang.String GENERIC_EVENT_CAMPAIGN_TYPE_KEY
        See Also:
        Constant Field Values
      • GENERIC_EVENT_CAMPAIGN_TYPE_GEO

        public static final java.lang.String GENERIC_EVENT_CAMPAIGN_TYPE_GEO
        See Also:
        Constant Field Values
      • GENERIC_EVENT_CAMPAIGN_TYPE_PUSH

        public static final java.lang.String GENERIC_EVENT_CAMPAIGN_TYPE_PUSH
        See Also:
        Constant Field Values
      • GENERIC_EVENT_CAMPAIGN_TYPE_IAM

        public static final java.lang.String GENERIC_EVENT_CAMPAIGN_TYPE_IAM
        See Also:
        Constant Field Values
      • GENERIC_EVENT_ACTION_TYPE_KEY

        public static final java.lang.String GENERIC_EVENT_ACTION_TYPE_KEY
        See Also:
        Constant Field Values
      • GENERIC_EVENT_ACTION_TYPE_IMPRESSION

        public static final java.lang.String GENERIC_EVENT_ACTION_TYPE_IMPRESSION
        See Also:
        Constant Field Values
      • GENERIC_EVENT_ACTION_TYPE_DELIVERED

        public static final java.lang.String GENERIC_EVENT_ACTION_TYPE_DELIVERED
        See Also:
        Constant Field Values
      • GENERIC_EVENT_ACTION_TYPE_ENGAGED

        public static final java.lang.String GENERIC_EVENT_ACTION_TYPE_ENGAGED
        See Also:
        Constant Field Values
      • GENERIC_EVENT_ACTION_TYPE_BUTTON_CLICK

        public static final java.lang.String GENERIC_EVENT_ACTION_TYPE_BUTTON_CLICK
        See Also:
        Constant Field Values
      • GENERIC_EVENT_ACTION_TYPE_INFLUENCED

        public static final java.lang.String GENERIC_EVENT_ACTION_TYPE_INFLUENCED
        See Also:
        Constant Field Values
      • GENERIC_EVENT_ACTION_TYPE_DISMISS

        public static final java.lang.String GENERIC_EVENT_ACTION_TYPE_DISMISS
        See Also:
        Constant Field Values
      • GENERIC_EVENT_ACTION_TYPE_NAVIGATION

        public static final java.lang.String GENERIC_EVENT_ACTION_TYPE_NAVIGATION
        See Also:
        Constant Field Values
      • GENERIC_EVENT_ACTION_TYPE_PAGE_VIEW

        public static final java.lang.String GENERIC_EVENT_ACTION_TYPE_PAGE_VIEW
        See Also:
        Constant Field Values
      • GENERIC_EVENT_CONTEXT_ID_KEY

        public static final java.lang.String GENERIC_EVENT_CONTEXT_ID_KEY
        See Also:
        Constant Field Values
      • GENERIC_EVENT_CAMPAIGN_ID_KEY

        public static final java.lang.String GENERIC_EVENT_CAMPAIGN_ID_KEY
        See Also:
        Constant Field Values
      • GENERIC_EVENT_PAYLOAD_BUTTON_TEXT

        public static final java.lang.String GENERIC_EVENT_PAYLOAD_BUTTON_TEXT
        See Also:
        Constant Field Values
      • GENERIC_EVENT_PAYLOAD_RUN_NUMBER

        public static final java.lang.String GENERIC_EVENT_PAYLOAD_RUN_NUMBER
        See Also:
        Constant Field Values
      • GENERIC_EVENT_PAYLOAD_SILENT

        public static final java.lang.String GENERIC_EVENT_PAYLOAD_SILENT
        See Also:
        Constant Field Values
      • GENERIC_EVENT_PAYLOAD_DISPLAYED

        public static final java.lang.String GENERIC_EVENT_PAYLOAD_DISPLAYED
        See Also:
        Constant Field Values
      • GENERIC_EVENT_PAYLOAD_REASON

        public static final java.lang.String GENERIC_EVENT_PAYLOAD_REASON
        See Also:
        Constant Field Values
      • GENERIC_EVENT_PAYLOAD_PAGE_NAME

        public static final java.lang.String GENERIC_EVENT_PAYLOAD_PAGE_NAME
        See Also:
        Constant Field Values
      • GENERIC_EVENT_PAYLOAD_TO

        public static final java.lang.String GENERIC_EVENT_PAYLOAD_TO
        See Also:
        Constant Field Values
      • GENERIC_EVENT_PAYLOAD_BUTTON_ID

        public static final java.lang.String GENERIC_EVENT_PAYLOAD_BUTTON_ID
        See Also:
        Constant Field Values
      • GENERIC_EVENT_PAYLOAD_BUTTON_NAME

        public static final java.lang.String GENERIC_EVENT_PAYLOAD_BUTTON_NAME
        See Also:
        Constant Field Values
      • EVENT_FIRST_SESSION

        public static final java.lang.String EVENT_FIRST_SESSION
        See Also:
        Constant Field Values
      • DEVICE_TYPE_MOBILE

        public static final java.lang.String DEVICE_TYPE_MOBILE
        See Also:
        Constant Field Values
      • version

        protected static java.lang.String version
      • CAMPAIGN_ENDPOINT_VERSION

        protected static final int CAMPAIGN_ENDPOINT_VERSION
        See Also:
        Constant Field Values
      • EMBEDDED_CAMPAIGN_VERSION

        protected static final int EMBEDDED_CAMPAIGN_VERSION
        See Also:
        Constant Field Values
      • IN_APP_CAMPAIGN_VERSION

        protected static final int IN_APP_CAMPAIGN_VERSION
        See Also:
        Constant Field Values
      • CAMPAIGN_RESPONSE_VERSION

        protected static final java.lang.String CAMPAIGN_RESPONSE_VERSION
        See Also:
        Constant Field Values
      • USER_CONTENT_ACTION

        protected static final java.lang.String USER_CONTENT_ACTION
        See Also:
        Constant Field Values
      • USER_RESOURCES_DIFF_ACTION

        protected static final java.lang.String USER_RESOURCES_DIFF_ACTION
        See Also:
        Constant Field Values
      • BATCH_EVENTS_ACTION

        protected static final java.lang.String BATCH_EVENTS_ACTION
        See Also:
        Constant Field Values
      • IDENTITY_ACTION

        protected static final java.lang.String IDENTITY_ACTION
        See Also:
        Constant Field Values
      • EMPTY_JSON_ARRAY

        protected static final java.lang.String EMPTY_JSON_ARRAY
        See Also:
        Constant Field Values
      • SHUTDOWN_TIMEOUT_SECONDS

        protected static final int SHUTDOWN_TIMEOUT_SECONDS
        See Also:
        Constant Field Values
      • SWRVE_DEFAULT_CAMPAIGN_RESOURCES_FLUSH_FREQUENCY

        protected static final int SWRVE_DEFAULT_CAMPAIGN_RESOURCES_FLUSH_FREQUENCY
        See Also:
        Constant Field Values
      • SWRVE_DEFAULT_CAMPAIGN_RESOURCES_FLUSH_REFRESH_DELAY

        protected static final int SWRVE_DEFAULT_CAMPAIGN_RESOURCES_FLUSH_REFRESH_DELAY
        See Also:
        Constant Field Values
      • SWRVE_AUTOSHOW_AT_SESSION_START_TRIGGER

        protected static final java.lang.String SWRVE_AUTOSHOW_AT_SESSION_START_TRIGGER
        See Also:
        Constant Field Values
      • SUPPORTED_REQUIREMENTS

        protected static final java.util.List<java.lang.String> SUPPORTED_REQUIREMENTS
      • DEFAULT_DELAY_FIRST_MESSAGE

        protected static int DEFAULT_DELAY_FIRST_MESSAGE
      • DEFAULT_MAX_SHOWS

        protected static long DEFAULT_MAX_SHOWS
      • DEFAULT_MIN_DELAY

        protected static int DEFAULT_MIN_DELAY
      • application

        protected java.lang.ref.WeakReference<android.app.Application> application
      • context

        protected java.lang.ref.WeakReference<android.content.Context> context
      • activityContext

        protected java.lang.ref.WeakReference<android.app.Activity> activityContext
      • appVersion

        protected java.lang.String appVersion
      • appId

        protected int appId
      • apiKey

        protected java.lang.String apiKey
      • profileManager

        protected com.swrve.sdk.SwrveProfileManager profileManager
      • language

        protected java.lang.String language
      • autoShowExecutor

        protected java.util.concurrent.ExecutorService autoShowExecutor
      • newSessionInterval

        protected long newSessionInterval
      • lastSessionTick

        protected long lastSessionTick
      • restClient

        protected com.swrve.sdk.rest.IRESTClient restClient
      • lifecycleExecutor

        protected java.util.concurrent.ExecutorService lifecycleExecutor
      • storageExecutor

        protected java.util.concurrent.ExecutorService storageExecutor
      • restClientExecutor

        protected java.util.concurrent.ExecutorService restClientExecutor
      • campaignsAndResourcesExecutor

        protected java.util.concurrent.ScheduledThreadPoolExecutor campaignsAndResourcesExecutor
      • campaignsState

        protected java.util.Map<java.lang.Integer,​SwrveCampaignState> campaignsState
      • realTimeUserProperties

        protected java.util.Map<java.lang.String,​java.lang.String> realTimeUserProperties
      • swrveAssetsManager

        protected com.swrve.sdk.SwrveAssetsManager swrveAssetsManager
      • appStoreURLs

        protected android.util.SparseArray<java.lang.String> appStoreURLs
      • autoShowMessagesEnabled

        protected boolean autoShowMessagesEnabled
      • campaignsAndResourcesFlushFrequency

        protected java.lang.Integer campaignsAndResourcesFlushFrequency
      • campaignsAndResourcesFlushRefreshDelay

        protected java.lang.Integer campaignsAndResourcesFlushRefreshDelay
      • campaignsAndResourcesLastETag

        protected java.lang.String campaignsAndResourcesLastETag
      • campaignsAndResourcesLastRefreshed

        protected java.util.Date campaignsAndResourcesLastRefreshed
      • campaignsAndResourcesInitialized

        protected boolean campaignsAndResourcesInitialized
      • eventsWereSent

        protected boolean eventsWereSent
      • initialised

        protected boolean initialised
      • started

        protected boolean started
      • initialisedTime

        protected java.util.Date initialisedTime
      • deviceWidth

        protected int deviceWidth
      • deviceHeight

        protected int deviceHeight
      • deviceDpi

        protected float deviceDpi
      • androidDeviceXdpi

        protected float androidDeviceXdpi
      • androidDeviceYdpi

        protected float androidDeviceYdpi
      • simOperatorName

        protected java.lang.String simOperatorName
      • simOperatorIsoCountryCode

        protected java.lang.String simOperatorIsoCountryCode
      • simOperatorCode

        protected java.lang.String simOperatorCode
      • androidId

        protected java.lang.String androidId
      • swrveDeeplinkManager

        protected com.swrve.sdk.SwrveDeeplinkManager swrveDeeplinkManager
      • campaignInfluence

        protected com.swrve.sdk.SwrveCampaignInfluence campaignInfluence
      • notificationSwrveCampaignId

        protected java.lang.String notificationSwrveCampaignId
      • identifiedOnAnotherDevice

        protected boolean identifiedOnAnotherDevice
      • sessionListener

        protected com.swrve.sdk.SwrveSessionListener sessionListener
      • pausedEvents

        protected java.util.List<com.swrve.sdk.EventQueueItem> pausedEvents
      • lastEventPayloadUsed

        protected java.util.Map<java.lang.String,​java.lang.String> lastEventPayloadUsed
      • foregroundActivity

        protected java.lang.String foregroundActivity
    • Constructor Detail

      • SwrveBase

        protected SwrveBase​(android.app.Application application,
                            int appId,
                            java.lang.String apiKey,
                            C config)
    • Method Detail

      • _getVersion

        protected static java.lang.String _getVersion()
      • getVersion

        public static java.lang.String getVersion()
      • onCreate

        protected void onCreate​(android.app.Activity activity)
                         throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • init

        protected void init​(android.app.Activity activity)
                     throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • getCacheDir

        public java.io.File getCacheDir​(android.content.Context context)
      • openLocalStorageConnection

        protected void openLocalStorageConnection()
      • beforeSendDeviceInfo

        protected abstract void beforeSendDeviceInfo​(android.content.Context context)
      • extraDeviceInfo

        protected abstract void extraDeviceInfo​(org.json.JSONObject deviceInfo)
                                         throws org.json.JSONException
        Throws:
        org.json.JSONException
      • getPlatformOS

        protected abstract java.lang.String getPlatformOS​(android.content.Context context)
      • _sessionStart

        protected void _sessionStart()
      • _event

        protected void _event​(java.lang.String name)
      • _event

        protected void _event​(java.lang.String name,
                              java.util.Map<java.lang.String,​java.lang.String> payload)
      • _purchase

        protected void _purchase​(java.lang.String item,
                                 java.lang.String currency,
                                 int cost,
                                 int quantity)
      • _currencyGiven

        protected void _currencyGiven​(java.lang.String givenCurrency,
                                      double givenAmount)
      • _userUpdate

        protected void _userUpdate​(java.util.Map<java.lang.String,​java.lang.String> attributes)
      • _userUpdate

        protected void _userUpdate​(java.lang.String name,
                                   java.util.Date date)
      • _iap

        protected void _iap​(int quantity,
                            java.lang.String productId,
                            double productPrice,
                            java.lang.String currency)
      • _iap

        protected void _iap​(int quantity,
                            java.lang.String productId,
                            double productPrice,
                            java.lang.String currency,
                            SwrveIAPRewards rewards)
      • _sendQueuedEvents

        protected void _sendQueuedEvents​(java.lang.String userId,
                                         java.lang.String sessionToken,
                                         boolean updateSentFlag)
      • _flushToDisk

        protected void _flushToDisk()
      • _onPause

        protected void _onPause()
      • _onStop

        protected void _onStop​(android.app.Activity activity)
      • _onResume

        protected void _onResume​(android.app.Activity activity)
      • loadCampaignFromNotification

        protected void loadCampaignFromNotification()
      • _shutdown

        protected void _shutdown()
      • _stopTracking

        protected void _stopTracking()
      • _setLanguage

        protected void _setLanguage​(java.util.Locale locale)
      • _getLanguage

        protected java.lang.String _getLanguage()
      • _getApiKey

        protected java.lang.String _getApiKey()
      • _getJoined

        protected java.lang.String _getJoined()
      • _getDeviceInfo

        protected org.json.JSONObject _getDeviceInfo()
                                              throws org.json.JSONException
        Throws:
        org.json.JSONException
      • _refreshCampaignsAndResources

        protected void _refreshCampaignsAndResources()
      • _getConversationForEvent

        protected SwrveConversation _getConversationForEvent​(java.lang.String event,
                                                             java.util.Map<java.lang.String,​java.lang.String> payload)
      • _getMessageForId

        protected SwrveMessage _getMessageForId​(int messageId)
      • _getEmbeddedMessageForId

        protected SwrveEmbeddedMessage _getEmbeddedMessageForId​(int messageId)
      • _getBaseMessageForEvent

        protected SwrveBaseMessage _getBaseMessageForEvent​(java.lang.String event,
                                                           java.util.Map<java.lang.String,​java.lang.String> payload,
                                                           com.swrve.sdk.messaging.SwrveOrientation orientation)
      • queueMessageClickEvent

        protected void queueMessageClickEvent​(SwrveButton button,
                                              long pageId,
                                              java.lang.String pageName)
      • messageWasShownToUser

        protected void messageWasShownToUser​(SwrveMessageFormat messageFormat)
      • _getPersonalizedText

        protected java.lang.String _getPersonalizedText​(java.lang.String text,
                                                        java.util.Map<java.lang.String,​java.lang.String> personalizationProperties)
      • _getAppStoreURLForApp

        protected java.lang.String _getAppStoreURLForApp​(int appId)
      • _getCacheDir

        protected java.io.File _getCacheDir()
      • _getInitialisedTime

        protected java.util.Date _getInitialisedTime()
      • _getConfig

        protected C _getConfig()
      • sessionStart

        public void sessionStart()
        Public functions all wrapped in try/catch to avoid exceptions leaving the SDK and affecting the app itself.
        Specified by:
        sessionStart in interface ISwrveBase<T,​C extends SwrveConfigBase>
      • event

        public void event​(java.lang.String name,
                          java.util.Map<java.lang.String,​java.lang.String> payload)
        Specified by:
        event in interface ISwrveBase<T,​C extends SwrveConfigBase>
      • purchase

        public void purchase​(java.lang.String item,
                             java.lang.String currency,
                             int cost,
                             int quantity)
        Specified by:
        purchase in interface ISwrveBase<T,​C extends SwrveConfigBase>
      • userUpdate

        public void userUpdate​(java.util.Map<java.lang.String,​java.lang.String> attributes)
        Specified by:
        userUpdate in interface ISwrveBase<T,​C extends SwrveConfigBase>
      • iap

        public void iap​(int quantity,
                        java.lang.String productId,
                        double productPrice,
                        java.lang.String currency)
        Specified by:
        iap in interface ISwrveBase<T,​C extends SwrveConfigBase>
      • onPause

        protected void onPause()
      • onStop

        protected void onStop​(android.app.Activity activity)
      • onResume

        protected void onResume​(android.app.Activity ctx)
      • getJoined

        public java.lang.String getJoined()
      • isTrackingStateStopped

        public boolean isTrackingStateStopped()
      • getMessageForId

        public SwrveMessage getMessageForId​(int messageId)
      • getBaseMessageForEvent

        protected SwrveBaseMessage getBaseMessageForEvent​(java.lang.String event)
      • getBaseMessageForEvent

        protected SwrveBaseMessage getBaseMessageForEvent​(java.lang.String event,
                                                          java.util.Map<java.lang.String,​java.lang.String> payload)
      • getBaseMessageForEvent

        protected SwrveBaseMessage getBaseMessageForEvent​(java.lang.String event,
                                                          java.util.Map<java.lang.String,​java.lang.String> payload,
                                                          com.swrve.sdk.messaging.SwrveOrientation orientation)
      • getConversationForEvent

        protected SwrveConversation getConversationForEvent​(java.lang.String event,
                                                            java.util.Map<java.lang.String,​java.lang.String> payload)
      • getPersonalizedText

        public java.lang.String getPersonalizedText​(java.lang.String text,
                                                    java.util.Map<java.lang.String,​java.lang.String> personalizationProperties)
        Specified by:
        getPersonalizedText in interface ISwrveBase<T,​C extends SwrveConfigBase>
      • getContentRequestParams

        protected java.util.Map<java.lang.String,​java.lang.String> getContentRequestParams​(java.lang.String userId)
      • initSwrveDeepLinkManager

        protected void initSwrveDeepLinkManager()
      • getSSLSocketFactoryConfig

        public com.swrve.sdk.SwrveSSLSocketFactoryConfig getSSLSocketFactoryConfig()
        Implementation of ISwrveCommon methods
      • getAppId

        public int getAppId()
      • getAppVersion

        public java.lang.String getAppVersion()
      • getBatchURL

        public java.lang.String getBatchURL()
      • getContentURL

        public java.lang.String getContentURL()
      • getSwrveSDKVersion

        public java.lang.String getSwrveSDKVersion()
      • getCachedData

        public java.lang.String getCachedData​(java.lang.String userId,
                                              java.lang.String key)
      • sendEventsInBackground

        public void sendEventsInBackground​(android.content.Context context,
                                           java.lang.String userId,
                                           java.util.ArrayList<java.lang.String> events)
      • getSwrveBackgroundEventSender

        protected SwrveBackgroundEventSender getSwrveBackgroundEventSender​(android.content.Context context)
      • getSessionKey

        public java.lang.String getSessionKey()
      • getDeviceId

        public java.lang.String getDeviceId()
      • getEventsServer

        public java.lang.String getEventsServer()
      • getHttpTimeout

        public int getHttpTimeout()
      • getNextSequenceNumber

        public int getNextSequenceNumber()
      • getDefaultNotificationChannel

        public android.app.NotificationChannel getDefaultNotificationChannel()
      • getNotificationConfig

        public com.swrve.sdk.SwrveNotificationConfig getNotificationConfig()
      • getNotificationListener

        public com.swrve.sdk.SwrvePushNotificationListener getNotificationListener()
      • getSilentPushListener

        public com.swrve.sdk.SwrveSilentPushListener getSilentPushListener()
      • queueConversationEvent

        public void queueConversationEvent​(java.lang.String eventParamName,
                                           java.lang.String eventPayloadName,
                                           java.lang.String page,
                                           int conversationId,
                                           java.util.Map<java.lang.String,​java.lang.String> payload)
      • onActivityCreated

        public void onActivityCreated​(android.app.Activity activity,
                                      android.os.Bundle savedInstanceState)
        Specified by:
        onActivityCreated in interface android.app.Application.ActivityLifecycleCallbacks
      • onActivityStarted

        public void onActivityStarted​(android.app.Activity activity)
        Specified by:
        onActivityStarted in interface android.app.Application.ActivityLifecycleCallbacks
      • onActivityResumed

        public void onActivityResumed​(android.app.Activity activity)
        Specified by:
        onActivityResumed in interface android.app.Application.ActivityLifecycleCallbacks
      • onActivityPaused

        public void onActivityPaused​(android.app.Activity activity)
        Specified by:
        onActivityPaused in interface android.app.Application.ActivityLifecycleCallbacks
      • onActivityStopped

        public void onActivityStopped​(android.app.Activity activity)
        Specified by:
        onActivityStopped in interface android.app.Application.ActivityLifecycleCallbacks
      • onActivitySaveInstanceState

        public void onActivitySaveInstanceState​(android.app.Activity activity,
                                                android.os.Bundle outState)
        Specified by:
        onActivitySaveInstanceState in interface android.app.Application.ActivityLifecycleCallbacks
      • onActivityDestroyed

        public void onActivityDestroyed​(android.app.Activity activity)
        Specified by:
        onActivityDestroyed in interface android.app.Application.ActivityLifecycleCallbacks
      • setNotificationSwrveCampaignId

        public void setNotificationSwrveCampaignId​(java.lang.String swrveCampaignId)
      • switchUser

        protected void switchUser​(java.lang.String newUserId)
      • _identify

        protected void _identify​(java.lang.String externalUserId,
                                 SwrveIdentityResponse identityResponse)
      • queuePausedEvents

        protected void queuePausedEvents()
      • enableEventSending

        protected void enableEventSending()
      • pauseEventSending

        protected void pauseEventSending()
      • saveNotificationAuthenticated

        public void saveNotificationAuthenticated​(int notificationId)
      • clearAllAuthenticatedNotifications

        protected void clearAllAuthenticatedNotifications()
      • getFlushRefreshDelay

        public int getFlushRefreshDelay()
      • setSessionListener

        public void setSessionListener​(com.swrve.sdk.SwrveSessionListener sessionListener)
      • fetchNotificationCampaigns

        public void fetchNotificationCampaigns​(java.util.Set<java.lang.Long> campaignIds)
      • start

        public void start​(android.app.Activity activity,
                          java.lang.String userId)
        Specified by:
        start in interface ISwrveBase<T,​C extends SwrveConfigBase>
      • isSdkReady

        protected boolean isSdkReady()
      • sendSessionStart

        protected void sendSessionStart​(long time)
      • getSwrveEventsManager

        protected com.swrve.sdk.SwrveEventsManager getSwrveEventsManager​(java.lang.String userId,
                                                                         java.lang.String deviceId,
                                                                         java.lang.String sessionToken)
      • saveEvent

        public void saveEvent​(java.lang.String event)
      • getUniqueKey

        public abstract java.lang.String getUniqueKey​(java.lang.String arg0)
      • registerActivityLifecycleCallbacks

        protected void registerActivityLifecycleCallbacks()
      • unregisterActivityLifecycleCallbacks

        protected void unregisterActivityLifecycleCallbacks()
      • bindToActivity

        protected void bindToActivity​(android.app.Activity activity)
      • _iap

        protected void _iap​(int quantity,
                            java.lang.String productId,
                            double productPrice,
                            java.lang.String currency,
                            SwrveIAPRewards rewards,
                            java.lang.String receipt,
                            java.lang.String receiptSignature,
                            java.lang.String paymentProvider)
      • _iap_check_parameters

        protected boolean _iap_check_parameters​(int quantity,
                                                java.lang.String productId,
                                                double productPrice,
                                                java.lang.String currency,
                                                java.lang.String paymentProvider)
                                         throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • getDeviceName

        protected java.lang.String getDeviceName()
      • processUserResourcesDiffData

        protected void processUserResourcesDiffData​(java.lang.String resourcesAsJSON,
                                                    SwrveUserResourcesDiffListener listener)
      • queueEvent

        protected void queueEvent​(java.lang.String eventType,
                                  java.util.Map<java.lang.String,​java.lang.Object> parameters,
                                  java.util.Map<java.lang.String,​java.lang.String> payload)
      • queueEvent

        protected boolean queueEvent​(java.lang.String userId,
                                     java.lang.String eventType,
                                     java.util.Map<java.lang.String,​java.lang.Object> parameters,
                                     java.util.Map<java.lang.String,​java.lang.String> payload,
                                     boolean triggerEventListener)
      • deviceUpdate

        protected void deviceUpdate​(java.lang.String userId,
                                    org.json.JSONObject attributes)
      • restClientExecutorExecute

        protected boolean restClientExecutorExecute​(java.lang.Runnable runnable)
      • storageExecutorExecute

        protected boolean storageExecutorExecute​(java.lang.Runnable runnable)
      • lifecycleExecutorExecute

        protected boolean lifecycleExecutorExecute​(java.lang.Runnable runnable)
      • getSessionTime

        protected long getSessionTime()
      • generateNewSessionInterval

        protected void generateNewSessionInterval()
      • buildDeviceInfo

        protected void buildDeviceInfo​(android.content.Context context)
      • getTelephonyManager

        protected ITelephonyManager getTelephonyManager​(android.content.Context context)
      • checkPermissionGranted

        protected boolean checkPermissionGranted​(android.content.Context context,
                                                 java.lang.String permission)
      • requestPermissions

        protected void requestPermissions​(android.app.Activity activity,
                                          java.lang.String[] permissions)
      • saveCampaignsInCache

        protected void saveCampaignsInCache​(org.json.JSONObject campaignContent)
      • saveResourcesInCache

        protected void saveResourcesInCache​(org.json.JSONArray resourcesContent)
      • saveRealTimeUserPropertiesInCache

        protected void saveRealTimeUserPropertiesInCache​(org.json.JSONObject userPropertiesContent)
      • updateQaUser

        protected void updateQaUser​(java.lang.String qaUserJson)
      • autoShowMessages

        protected void autoShowMessages()
      • autoShowMessage

        protected void autoShowMessage​(SwrveBase<T,​C> swrve)
      • displaySwrveMessage

        protected void displaySwrveMessage​(SwrveMessage message,
                                           java.util.Map<java.lang.String,​java.lang.String> properties)
      • autoShowConversation

        protected void autoShowConversation​(SwrveBase<T,​C> swrve)
      • disableAutoShowAfterDelay

        protected void disableAutoShowAfterDelay()
      • loadCampaignsFromJSON

        protected void loadCampaignsFromJSON​(java.lang.String userId,
                                             org.json.JSONObject json,
                                             java.util.Map<java.lang.Integer,​SwrveCampaignState> states,
                                             boolean loadPreviousCampaignState)
      • downloadAssets

        protected void downloadAssets​(java.util.Set<com.swrve.sdk.SwrveAssetsQueueItem> assetsQueue)
      • loadCampaignFromJSON

        protected SwrveInAppCampaign loadCampaignFromJSON​(org.json.JSONObject campaignData,
                                                          java.util.Set<com.swrve.sdk.SwrveAssetsQueueItem> assetsQueue,
                                                          java.util.Map<java.lang.String,​java.lang.String> properties)
                                                   throws org.json.JSONException
        Throws:
        org.json.JSONException
      • loadEmbeddedCampaignFromJSON

        protected SwrveEmbeddedCampaign loadEmbeddedCampaignFromJSON​(org.json.JSONObject campaignData)
                                                              throws org.json.JSONException
        Throws:
        org.json.JSONException
      • loadConversationCampaignFromJSON

        protected SwrveConversationCampaign loadConversationCampaignFromJSON​(org.json.JSONObject campaignData,
                                                                             java.util.Set<com.swrve.sdk.SwrveAssetsQueueItem> assetsQueue)
                                                                      throws org.json.JSONException
        Throws:
        org.json.JSONException
      • saveCampaignsState

        protected void saveCampaignsState​(java.lang.String userId)
      • getContext

        protected android.content.Context getContext()
      • getDeviceOrientation

        protected com.swrve.sdk.messaging.SwrveOrientation getDeviceOrientation()
      • getActivityContext

        @Nullable
        protected android.app.Activity getActivityContext()
      • queueDeviceUpdateNow

        protected void queueDeviceUpdateNow​(java.lang.String userId,
                                            java.lang.String sessionToken,
                                            boolean sendNow)
      • getUniqueKey

        public java.lang.String getUniqueKey​(java.lang.String userId)
      • invalidSignatureError

        protected void invalidSignatureError​(java.lang.String userId,
                                             java.lang.String content)
      • initResources

        protected void initResources​(java.lang.String userId)
      • initRealTimeUserProperties

        protected void initRealTimeUserProperties​(java.lang.String userId)
      • initABTestDetails

        protected void initABTestDetails​(java.lang.String userId)
      • initCampaigns

        protected void initCampaigns​(java.lang.String userId)
      • loadCampaignsFromCache

        protected void loadCampaignsFromCache​(java.lang.String userId)
      • invokeResourceListener

        protected void invokeResourceListener()
      • checkForCampaignAndResourcesUpdates

        protected void checkForCampaignAndResourcesUpdates()
      • startCampaignsAndResourcesTimer

        protected void startCampaignsAndResourcesTimer​(boolean sessionStart)
      • shutdownCampaignsAndResourcesTimer

        protected void shutdownCampaignsAndResourcesTimer()
      • filterCampaignCapabilityRequest

        protected java.lang.Boolean filterCampaignCapabilityRequest​(SwrveInAppCampaign campaign)
      • retrievePersonalizationProperties

        protected java.util.Map<java.lang.String,​java.lang.String> retrievePersonalizationProperties​(java.util.Map<java.lang.String,​java.lang.String> eventPayload,
                                                                                                           java.util.Map<java.lang.String,​java.lang.String> properties)