Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 9 additions & 12 deletions .github/workflows/daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -233,12 +233,11 @@ jobs:
- name: "Run Android Core SDK Lint"
run: ./gradlew lint
- name: "Setup Android Kit Lint"
run: ./gradlew publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)
run: ./gradlew publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)-ci
- name: "Run Android Kit Lint"
run: ./gradlew lint -c settings-kits.gradle
run: ./gradlew lint -c settings-kits.gradle -PVERSION=$(head -n 1 VERSION)-ci
- name: "Run Isolated Kit Lint (urbanairship-kit)"
working-directory: kits/urbanairship/urbanairship-20
run: ./gradlew lint
run: ./gradlew -p kits/urbanairship/urbanairship-20 -PVERSION=$(head -n 1 VERSION)-ci lint
- name: "Archive Test Results"
uses: actions/upload-artifact@v7
if: always()
Expand Down Expand Up @@ -271,12 +270,11 @@ jobs:
- name: "Run Android Core SDK Kotlin Lint"
run: ./gradlew ktlintCheck
- name: "Setup Android Kit Kotlin Lint"
run: ./gradlew publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)
run: ./gradlew publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)-ci
- name: "Run Android Kit Kotlin Lint"
run: ./gradlew ktlintCheck -c settings-kits.gradle
run: ./gradlew ktlintCheck -c settings-kits.gradle -PVERSION=$(head -n 1 VERSION)-ci
- name: "Run Isolated Kit Kotlin Lint (urbanairship-kit)"
working-directory: kits/urbanairship/urbanairship-20
run: ./gradlew ktlintCheck
run: ./gradlew -p kits/urbanairship/urbanairship-20 -PVERSION=$(head -n 1 VERSION)-ci ktlintCheck
- name: "Archive Test Results"
uses: actions/upload-artifact@v7
if: always()
Expand Down Expand Up @@ -312,12 +310,11 @@ jobs:
java-version: "17"
cache: "gradle"
- name: "Build Android Core"
run: ./gradlew clean publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)
run: ./gradlew clean publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)-ci
- name: "Test Kits"
run: ./gradlew clean testRelease -c settings-kits.gradle
run: ./gradlew clean testRelease -c settings-kits.gradle -PVERSION=$(head -n 1 VERSION)-ci
- name: "Test Isolated Kits (urbanairship-kit)"
working-directory: kits/urbanairship/urbanairship-20
run: ./gradlew clean testRelease
run: ./gradlew -p kits/urbanairship/urbanairship-20 -PVERSION=$(head -n 1 VERSION)-ci clean testRelease

semantic-release-dryrun:
name: "Test Semantic Release - Dry Run"
Expand Down
17 changes: 8 additions & 9 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,9 @@ jobs:
- name: "Run Android Core SDK Lint"
run: ./gradlew lint
- name: "Setup Android Kit Lint"
run: ./gradlew publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)
run: ./gradlew publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)-ci
- name: "Run Android Kit Lint"
run: ./gradlew -c settings-kits.gradle lint
run: ./gradlew -c settings-kits.gradle lint -PVERSION=$(head -n 1 VERSION)-ci
- name: "Archive Lint Test Results"
uses: actions/upload-artifact@v7
if: always()
Expand All @@ -133,9 +133,9 @@ jobs:
- name: "Run Android Core SDK Kotlin Lint"
run: ./gradlew ktlintCheck
- name: "Setup Android Kit Kotlin Lint"
run: ./gradlew publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)
run: ./gradlew publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)-ci
- name: "Run Android Kit Kotlin Lint"
run: ./gradlew -c settings-kits.gradle ktlintCheck
run: ./gradlew -c settings-kits.gradle ktlintCheck -PVERSION=$(head -n 1 VERSION)-ci
- name: "Archive Kotlin Lint Test Results"
uses: actions/upload-artifact@v7
if: always()
Expand All @@ -162,14 +162,13 @@ jobs:
distribution: "zulu"
java-version: "17"
- name: "Generate Core Release Build"
run: ./gradlew publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)
run: ./gradlew publishMavenPublicationToMavenLocal -PVERSION=$(head -n 1 VERSION)-ci
- name: "Run Kit-Base Release Tests and Build"
run: ./gradlew :android-kit-base:testRelease -PVERSION=$(head -n 1 VERSION)
run: ./gradlew :android-kit-base:testRelease -PVERSION=$(head -n 1 VERSION)-ci
- name: "Run Kit Release Tests and Build"
run: ./gradlew -p kits testRelease -c ../settings-kits.gradle -PVERSION=$(head -n 1 VERSION)
run: ./gradlew -p kits testRelease -c ../settings-kits.gradle -PVERSION=$(head -n 1 VERSION)-ci
- name: "Run Isolated Kit Compatibility Tests (urbanairship)"
working-directory: kits/urbanairship/urbanairship-20
run: ./gradlew -PisRelease=true testRelease
run: ./gradlew -p kits/urbanairship/urbanairship-20 -PisRelease=true -PVERSION=$(head -n 1 VERSION)-ci testRelease

automerge-dependabot:
name: "Save PR Number for Dependabot Automerge"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ package com.mparticle.kits.testkits

import com.mparticle.MParticle
import com.mparticle.kits.KitIntegration
import com.mparticle.kits.KitIntegration.LogoutListener
import com.mparticle.kits.ReportingMessage

open class AttributeListenerTestKit :
ListenerTestKit(),
KitIntegration.AttributeListener {
KitIntegration.AttributeListener,
LogoutListener {
var setUserAttribute: ((attributeKey: String?, attributeValue: String?) -> Unit)? = null
var setUserAttributeList: ((attributeKey: String?, attributeValueList: List<String?>?) -> Unit)? =
null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,21 @@ public interface SessionListener {
List<ReportingMessage> onSessionEnd();
}

/**
* Kits may implement this interface to respond when the mParticle Identity API performs a logout.
*/
public interface LogoutListener {

/**
* The mParticle SDK exposes a logout API, allowing developers to track an event
* when a user logs out of their app/platform. Use this opportunity to perform the appropriate logic
* as per your platforms logout paradigm, such as clearing user attributes.
*
* @return Kits should return a List of ReportingMessages indicating that the logout was processed one or more times, or null if it was not processed
*/
List<ReportingMessage> logout();
}

/**
* Kits should implement this interface when their underlying service has the notion
* of a user with attributes.
Expand Down Expand Up @@ -374,15 +389,6 @@ public interface AttributeListener {

void removeUserIdentity(MParticle.IdentityType identityType);

/**
* The mParticle SDK exposes a logout API, allowing developers to track an event
* when a user logs out of their app/platform. Use this opportunity to perform the appropriate logic
* as per your platforms logout paradigm, such as clearing user attributes.
*
* @return Kits should return a List of ReportingMessages indicating that the logout was processed one or more times, or null if it was not processed
*/
List<ReportingMessage> logout();

}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import com.mparticle.internal.Logger;
import com.mparticle.internal.MPUtility;
import com.mparticle.internal.ReportingManager;
import com.mparticle.kits.KitIntegration.LogoutListener;
import com.mparticle.kits.mappings.CustomMapping;
import com.mparticle.rokt.RoktOptions;

Expand Down Expand Up @@ -809,9 +810,8 @@ public void removeUserIdentity(MParticle.IdentityType identityType) {
public void logout() {
for (KitIntegration provider : providers.values()) {
try {
if (provider instanceof KitIntegration.AttributeListener && !provider.isDisabled()) {
List<ReportingMessage> report = ((KitIntegration.AttributeListener) provider).logout();
getReportingManager().logAll(report);
if (provider instanceof LogoutListener listener && !provider.isDisabled()) {
getReportingManager().logAll(listener.logout());
}
} catch (Exception e) {
Logger.warning("Failed to call logout for kit: " + provider.getName() + ": " + e.getMessage());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.mparticle.internal.MPUtility
import com.mparticle.internal.MPUtility.AdIdInfo
import com.mparticle.kits.KitIntegration.ApplicationStateListener
import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.LogoutListener
import com.mparticle.kits.KitIntegration.PushListener
import org.json.JSONException
import org.json.JSONObject
Expand All @@ -16,6 +17,7 @@ import java.net.URL
abstract class AdobeKitBase :
KitIntegration(),
AttributeListener,
LogoutListener,
PushListener,
ApplicationStateListener {
private val dVer = "2"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import com.mparticle.MParticle
import com.mparticle.kits.KitIntegration.ApplicationStateListener
import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.EventListener
import com.mparticle.kits.KitIntegration.LogoutListener
import com.mparticle.kits.KitIntegration.PushListener
import com.mparticle.media.events.ContentType
import com.mparticle.media.events.EventAttributes
Expand All @@ -36,6 +37,7 @@ open class AdobeKit :
KitIntegration(),
EventListener,
AttributeListener,
LogoutListener,
PushListener,
ApplicationStateListener {
companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import com.mparticle.commerce.Product
import com.mparticle.consent.ConsentState
import com.mparticle.internal.Logger
import com.mparticle.internal.MPUtility
import com.mparticle.kits.KitIntegration.LogoutListener
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject
Expand All @@ -44,6 +45,7 @@ class AppsFlyerKit :
KitIntegration(),
KitIntegration.EventListener,
KitIntegration.AttributeListener,
LogoutListener,
KitIntegration.CommerceListener,
AppsFlyerConversionListener,
KitIntegration.ActivityListener,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@ import com.mparticle.MParticle.IdentityType
import com.mparticle.commerce.CommerceEvent
import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.CommerceListener
import com.mparticle.kits.KitIntegration.LogoutListener
import java.math.BigDecimal

class ApptimizeKit :
KitIntegration(),
AttributeListener,
LogoutListener,
KitIntegration.EventListener,
CommerceListener,
OnTestRunListener {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.CommerceListener
import com.mparticle.kits.KitIntegration.EventListener
import com.mparticle.kits.KitIntegration.IdentityListener
import com.mparticle.kits.KitIntegration.LogoutListener
import io.branch.referral.Branch
import io.branch.referral.Branch.BranchReferralInitListener
import io.branch.referral.BranchError
Expand All @@ -37,6 +38,7 @@ class BranchMetricsKit :
EventListener,
CommerceListener,
AttributeListener,
LogoutListener,
ApplicationStateListener,
IdentityListener,
BranchReferralInitListener {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.CommerceListener
import com.mparticle.kits.KitIntegration.EventListener
import com.mparticle.kits.KitIntegration.IdentityListener
import com.mparticle.kits.KitIntegration.LogoutListener
import com.mparticle.kits.KitIntegration.PushListener
import com.mparticle.kits.KitIntegration.UserAttributeListener
import org.json.JSONArray
Expand All @@ -54,6 +55,7 @@ import kotlin.collections.HashMap
open class AppboyKit :
KitIntegration(),
AttributeListener,
LogoutListener,
CommerceListener,
KitIntegration.EventListener,
PushListener,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.CommerceListener
import com.mparticle.kits.KitIntegration.EventListener
import com.mparticle.kits.KitIntegration.IdentityListener
import com.mparticle.kits.KitIntegration.LogoutListener
import com.mparticle.kits.KitIntegration.PushListener
import com.mparticle.kits.KitIntegration.UserAttributeListener
import org.json.JSONArray
Expand All @@ -54,6 +55,7 @@ import kotlin.collections.HashMap
open class AppboyKit :
KitIntegration(),
AttributeListener,
LogoutListener,
CommerceListener,
KitIntegration.EventListener,
PushListener,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.CommerceListener
import com.mparticle.kits.KitIntegration.EventListener
import com.mparticle.kits.KitIntegration.IdentityListener
import com.mparticle.kits.KitIntegration.LogoutListener
import com.mparticle.kits.KitIntegration.PushListener
import com.mparticle.kits.KitIntegration.UserAttributeListener
import org.json.JSONArray
Expand All @@ -54,6 +55,7 @@ import kotlin.collections.HashMap
open class AppboyKit :
KitIntegration(),
AttributeListener,
LogoutListener,
CommerceListener,
KitIntegration.EventListener,
PushListener,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.CommerceListener
import com.mparticle.kits.KitIntegration.EventListener
import com.mparticle.kits.KitIntegration.IdentityListener
import com.mparticle.kits.KitIntegration.LogoutListener
import com.mparticle.kits.KitIntegration.PushListener
import com.mparticle.kits.KitIntegration.UserAttributeListener
import org.json.JSONArray
Expand All @@ -54,6 +55,7 @@ import kotlin.collections.HashMap
open class AppboyKit :
KitIntegration(),
AttributeListener,
LogoutListener,
CommerceListener,
KitIntegration.EventListener,
PushListener,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@ import com.mparticle.MParticle
import com.mparticle.MParticle.IdentityType
import com.mparticle.kits.KitIntegration.ActivityListener
import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.LogoutListener
import java.util.HashMap
import java.util.LinkedList

class ComscoreKit :
KitIntegration(),
KitIntegration.EventListener,
AttributeListener,
LogoutListener,
ActivityListener {
private var isEnterprise = false

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ import com.mparticle.AttributionResult
import com.mparticle.MParticle.IdentityType
import com.mparticle.identity.MParticleUser
import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.LogoutListener
import org.json.JSONException
import org.json.JSONObject

class KochavaKit :
KitIntegration(),
AttributeListener,
LogoutListener,
KitIntegration.IdentityListener {
override fun getName(): String = NAME

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import com.mparticle.internal.MPUtility
import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.CommerceListener
import com.mparticle.kits.KitIntegration.EventListener
import com.mparticle.kits.KitIntegration.LogoutListener
import com.mparticle.kits.KitIntegration.PushListener
import com.mparticle.kits.ReportingMessage
import org.json.JSONArray
Expand All @@ -31,6 +32,7 @@ class LocalyticsKit :
KitIntegration.EventListener,
CommerceListener,
AttributeListener,
LogoutListener,
PushListener,
CallToActionListener {
private var customDimensionJson: JSONArray? = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import com.mparticle.kits.KitIntegration.ApplicationStateListener
import com.mparticle.kits.KitIntegration.AttributeListener
import com.mparticle.kits.KitIntegration.CommerceListener
import com.mparticle.kits.KitIntegration.EventListener
import com.mparticle.kits.KitIntegration.LogoutListener
import com.mparticle.kits.KitIntegration.PushListener
import com.mparticle.kits.KitIntegration.UserAttributeListener
import com.singular.sdk.SDIDAccessorHandler
Expand All @@ -38,7 +39,8 @@ open class SingularKit :
CommerceListener,
ApplicationStateListener,
UserAttributeListener,
AttributeListener {
AttributeListener,
LogoutListener {
interface DeviceAttributionCallback : SingularDeviceAttributionHandler

interface SdidAccessorHandler : SDIDAccessorHandler
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.mparticle.MParticle.IdentityType
import com.mparticle.commerce.CommerceEvent
import com.mparticle.commerce.Product
import com.mparticle.kits.KitIntegration.CommerceListener
import com.mparticle.kits.KitIntegration.LogoutListener
import com.urbanairship.Airship
import com.urbanairship.Autopilot
import com.urbanairship.PrivacyManager
Expand All @@ -28,7 +29,8 @@ class UrbanAirshipKit :
KitIntegration.PushListener,
KitIntegration.EventListener,
CommerceListener,
KitIntegration.AttributeListener {
KitIntegration.AttributeListener,
LogoutListener {
private var channelIdListener: ChannelIdListener? = null
private var configuration: UrbanAirshipConfiguration? = null

Expand Down
Loading