Skip to content
Merged
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
18 changes: 10 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
## Next

- feat: Add a server-side stateless interface([#284](https://github.com/PostHog/posthog-android/pull/284))

## 3.21.3 - 2025-09-16

- fix: throttle mechanism wasn't thread safe ([#283](https://github.com/PostHog/posthog-android/pull/283))
Expand Down Expand Up @@ -30,16 +32,16 @@

## 3.20.1 - 2025-07-28

- fix: call PostHogOnFeatureFlags if remote config fails ([#270](https://github.com/PostHog/posthog-android/pull/270))
- fix: call PostHogOnFeatureFlags if remote config fails ([#270](https://github.com/PostHog/posthog-android/pull/270))

## 3.20.0 - 2025-07-23

- feat: add support for beforeSend function to edit or drop events ([#266](https://github.com/PostHog/posthog-android/pull/266))
- Thanks @KopeikinaDarya
- Thanks @KopeikinaDarya

## 3.19.2 - 2025-07-10

- fix: enable gzip for /flags endpoint ([#268](https://github.com/PostHog/posthog-android/pull/245)) and ([#268](https://github.com/PostHog/posthog-android/pull/264))
- fix: enable gzip for /flags endpoint ([#268](https://github.com/PostHog/posthog-android/pull/245)) and ([#268](https://github.com/PostHog/posthog-android/pull/264))

## 3.19.1 - 2025-06-16

Expand All @@ -54,8 +56,8 @@
## 3.18.0 - 2025-06-12

- feat: add proxy to `PostHogConfig` ([#260](https://github.com/PostHog/posthog-android/issues/260))
- Thanks @MamboBryan
- Thanks @MamboBryan

```kotlin
val config = PostHogAndroidConfig("...")
config.proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("proxy.example.com",8080))
Expand All @@ -71,7 +73,7 @@ config.proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("proxy.example.com",8080

## 3.15.1 - 2025-05-27

- fix: clear feature flags cache when flags were cleared up server side ([#246](https://github.com/PostHog/posthog-android/pull/246))
- fix: clear feature flags cache when flags were cleared up server side ([#246](https://github.com/PostHog/posthog-android/pull/246))

## 3.15.0 - 2025-05-14

Expand Down Expand Up @@ -129,7 +131,7 @@ config.proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("proxy.example.com",8080

## 3.9.2 - 2024-11-12

- fix: allow changing person properties after identify ([#205](https://github.com/PostHog/posthog-android/pull/205))
- fix: allow changing person properties after identify ([#205](https://github.com/PostHog/posthog-android/pull/205))

## 3.9.1 - 2024-11-11

Expand Down Expand Up @@ -233,7 +235,7 @@ config.proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("proxy.example.com",8080

## 3.2.2 - 2024-05-21

- chore: register to sdk console ([#131](https://github.com/PostHog/posthog-android/pull/131))
- chore: register to sdk console ([#131](https://github.com/PostHog/posthog-android/pull/131))

## 3.2.1 - 2024-05-08

Expand Down
126 changes: 113 additions & 13 deletions posthog/api/posthog.api
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,12 @@ public final class com/posthog/PersonProfiles : java/lang/Enum {
public static fun values ()[Lcom/posthog/PersonProfiles;
}

public final class com/posthog/PostHog : com/posthog/PostHogInterface {
public final class com/posthog/PostHog : com/posthog/PostHogStateless, com/posthog/PostHogInterface {
public static final field Companion Lcom/posthog/PostHog$Companion;
public synthetic fun <init> (Ljava/util/concurrent/ExecutorService;Ljava/util/concurrent/ExecutorService;Ljava/util/concurrent/ExecutorService;Ljava/util/concurrent/ExecutorService;ZLkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun alias (Ljava/lang/String;)V
public fun capture (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
public fun close ()V
public fun debug (Z)V
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why did we have the debug one?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It moved into PostHogStateless. It should still be callable from this class given we now inherit from PostHogStateless.

public fun distinctId ()Ljava/lang/String;
public fun endSession ()V
public fun flush ()V
Expand Down Expand Up @@ -160,6 +159,22 @@ public class com/posthog/PostHogConfig {
public final class com/posthog/PostHogConfig$Companion {
}

public abstract interface class com/posthog/PostHogCoreInterface {
public abstract fun close ()V
public abstract fun debug (Z)V
public abstract fun flush ()V
public abstract fun identify (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)V
public abstract fun isOptOut ()Z
public abstract fun optIn ()V
public abstract fun optOut ()V
public abstract fun setup (Lcom/posthog/PostHogConfig;)V
}

public final class com/posthog/PostHogCoreInterface$DefaultImpls {
public static synthetic fun debug$default (Lcom/posthog/PostHogCoreInterface;ZILjava/lang/Object;)V
public static synthetic fun identify$default (Lcom/posthog/PostHogCoreInterface;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ILjava/lang/Object;)V
}

public abstract interface class com/posthog/PostHogEncryption {
public abstract fun decrypt (Ljava/io/InputStream;)Ljava/io/InputStream;
public abstract fun encrypt (Ljava/io/OutputStream;)Ljava/io/OutputStream;
Expand Down Expand Up @@ -225,31 +240,23 @@ public final class com/posthog/PostHogIntegration$DefaultImpls {
public static fun uninstall (Lcom/posthog/PostHogIntegration;)V
}

public abstract interface class com/posthog/PostHogInterface {
public abstract interface class com/posthog/PostHogInterface : com/posthog/PostHogCoreInterface {
public abstract fun alias (Ljava/lang/String;)V
public abstract fun capture (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
public abstract fun close ()V
public abstract fun debug (Z)V
public abstract fun distinctId ()Ljava/lang/String;
public abstract fun endSession ()V
public abstract fun flush ()V
public abstract fun getConfig ()Lcom/posthog/PostHogConfig;
public abstract fun getFeatureFlag (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
public abstract fun getFeatureFlagPayload (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
public abstract fun getSessionId ()Ljava/util/UUID;
public abstract fun group (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
public abstract fun identify (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)V
public abstract fun isFeatureEnabled (Ljava/lang/String;Z)Z
public abstract fun isOptOut ()Z
public abstract fun isSessionActive ()Z
public abstract fun isSessionReplayActive ()Z
public abstract fun optIn ()V
public abstract fun optOut ()V
public abstract fun register (Ljava/lang/String;Ljava/lang/Object;)V
public abstract fun reloadFeatureFlags (Lcom/posthog/PostHogOnFeatureFlags;)V
public abstract fun reset ()V
public abstract fun screen (Ljava/lang/String;Ljava/util/Map;)V
public abstract fun setup (Lcom/posthog/PostHogConfig;)V
public abstract fun startSession ()V
public abstract fun startSessionReplay (Z)V
public abstract fun stopSessionReplay ()V
Expand All @@ -258,11 +265,9 @@ public abstract interface class com/posthog/PostHogInterface {

public final class com/posthog/PostHogInterface$DefaultImpls {
public static synthetic fun capture$default (Lcom/posthog/PostHogInterface;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;ILjava/lang/Object;)V
public static synthetic fun debug$default (Lcom/posthog/PostHogInterface;ZILjava/lang/Object;)V
public static synthetic fun getFeatureFlag$default (Lcom/posthog/PostHogInterface;Ljava/lang/String;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun getFeatureFlagPayload$default (Lcom/posthog/PostHogInterface;Ljava/lang/String;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun group$default (Lcom/posthog/PostHogInterface;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
public static synthetic fun identify$default (Lcom/posthog/PostHogInterface;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ILjava/lang/Object;)V
public static synthetic fun isFeatureEnabled$default (Lcom/posthog/PostHogInterface;Ljava/lang/String;ZILjava/lang/Object;)Z
public static synthetic fun reloadFeatureFlags$default (Lcom/posthog/PostHogInterface;Lcom/posthog/PostHogOnFeatureFlags;ILjava/lang/Object;)V
public static synthetic fun screen$default (Lcom/posthog/PostHogInterface;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
Expand All @@ -289,6 +294,80 @@ public abstract interface class com/posthog/PostHogPropertiesSanitizer {
public abstract fun sanitize (Ljava/util/Map;)Ljava/util/Map;
}

public class com/posthog/PostHogStateless : com/posthog/PostHogStatelessInterface {
public static final field Companion Lcom/posthog/PostHogStateless$Companion;
protected field config Lcom/posthog/PostHogConfig;
protected fun <init> ()V
protected fun <init> (Ljava/util/concurrent/ExecutorService;Ljava/util/concurrent/ExecutorService;)V
public synthetic fun <init> (Ljava/util/concurrent/ExecutorService;Ljava/util/concurrent/ExecutorService;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun aliasStateless (Ljava/lang/String;Ljava/lang/String;)V
protected final fun buildEvent (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)Lcom/posthog/PostHogEvent;
public fun captureStateless (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
public fun close ()V
public fun debug (Z)V
public fun flush ()V
protected fun getConfig ()Lcom/posthog/PostHogConfig;
protected final fun getEnabled ()Z
public fun getFeatureFlagPayloadStateless (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
public fun getFeatureFlagStateless (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
protected final fun getFeatureFlags ()Lcom/posthog/internal/PostHogFeatureFlagsInterface;
protected final fun getMemoryPreferences ()Lcom/posthog/internal/PostHogPreferences;
protected final fun getOptOutLock ()Ljava/lang/Object;
protected final fun getPreferences ()Lcom/posthog/internal/PostHogPreferences;
protected final fun getQueue ()Lcom/posthog/internal/PostHogQueueInterface;
protected final fun getSetupLock ()Ljava/lang/Object;
public fun groupStateless (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
public fun identify (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)V
protected final fun isEnabled ()Z
public fun isFeatureEnabledStateless (Ljava/lang/String;Ljava/lang/String;Z)Z
public fun isOptOut ()Z
protected final fun mergeGroups (Ljava/util/Map;)Ljava/util/Map;
public fun optIn ()V
public fun optOut ()V
protected final fun setEnabled (Z)V
protected final fun setFeatureFlags (Lcom/posthog/internal/PostHogFeatureFlagsInterface;)V
protected final fun setMemoryPreferences (Lcom/posthog/internal/PostHogPreferences;)V
protected final fun setQueue (Lcom/posthog/internal/PostHogQueueInterface;)V
public fun setup (Lcom/posthog/PostHogConfig;)V
}

public final class com/posthog/PostHogStateless$Companion : com/posthog/PostHogStatelessInterface {
public fun aliasStateless (Ljava/lang/String;Ljava/lang/String;)V
public fun captureStateless (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
public fun close ()V
public fun debug (Z)V
public fun flush ()V
public fun getFeatureFlagPayloadStateless (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
public fun getFeatureFlagStateless (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
public fun groupStateless (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
public fun identify (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;)V
public fun isFeatureEnabledStateless (Ljava/lang/String;Ljava/lang/String;Z)Z
public fun isOptOut ()Z
public fun optIn ()V
public fun optOut ()V
public final fun overrideSharedInstance (Lcom/posthog/PostHogStatelessInterface;)V
public final fun resetSharedInstance ()V
public fun setup (Lcom/posthog/PostHogConfig;)V
public final fun with (Lcom/posthog/PostHogConfig;)Lcom/posthog/PostHogStatelessInterface;
}

public abstract interface class com/posthog/PostHogStatelessInterface : com/posthog/PostHogCoreInterface {
public abstract fun aliasStateless (Ljava/lang/String;Ljava/lang/String;)V
public abstract fun captureStateless (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
public abstract fun getFeatureFlagPayloadStateless (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
public abstract fun getFeatureFlagStateless (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
public abstract fun groupStateless (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
public abstract fun isFeatureEnabledStateless (Ljava/lang/String;Ljava/lang/String;Z)Z
}

public final class com/posthog/PostHogStatelessInterface$DefaultImpls {
public static synthetic fun captureStateless$default (Lcom/posthog/PostHogStatelessInterface;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;ILjava/lang/Object;)V
public static synthetic fun getFeatureFlagPayloadStateless$default (Lcom/posthog/PostHogStatelessInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun getFeatureFlagStateless$default (Lcom/posthog/PostHogStatelessInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun groupStateless$default (Lcom/posthog/PostHogStatelessInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;ILjava/lang/Object;)V
public static synthetic fun isFeatureEnabledStateless$default (Lcom/posthog/PostHogStatelessInterface;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z
}

public abstract interface annotation class com/posthog/PostHogVisibleForTesting : java/lang/annotation/Annotation {
}

Expand All @@ -313,6 +392,19 @@ public final class com/posthog/internal/PostHogDeviceDateProvider : com/posthog/
public fun nanoTime ()J
}

public abstract interface class com/posthog/internal/PostHogFeatureFlagsInterface {
public abstract fun clear ()V
public abstract fun getFeatureFlag (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
public abstract fun getFeatureFlagPayload (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
public abstract fun getFeatureFlags ()Ljava/util/Map;
public abstract fun isSessionReplayFlagActive ()Z
public abstract fun loadRemoteConfig (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/posthog/PostHogOnFeatureFlags;Lcom/posthog/PostHogOnFeatureFlags;)V
}

public final class com/posthog/internal/PostHogFeatureFlagsInterface$DefaultImpls {
public static synthetic fun loadRemoteConfig$default (Lcom/posthog/internal/PostHogFeatureFlagsInterface;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/posthog/PostHogOnFeatureFlags;Lcom/posthog/PostHogOnFeatureFlags;ILjava/lang/Object;)V
}

public abstract interface class com/posthog/internal/PostHogLogger {
public abstract fun isEnabled ()Z
public abstract fun log (Ljava/lang/String;)V
Expand Down Expand Up @@ -375,6 +467,14 @@ public final class com/posthog/internal/PostHogPrintLogger : com/posthog/interna
public fun log (Ljava/lang/String;)V
}

public abstract interface class com/posthog/internal/PostHogQueueInterface {
public abstract fun add (Lcom/posthog/PostHogEvent;)V
public abstract fun clear ()V
public abstract fun flush ()V
public abstract fun start ()V
public abstract fun stop ()V
}

public final class com/posthog/internal/PostHogSerializer {
public fun <init> (Lcom/posthog/PostHogConfig;)V
public final fun deserializeString (Ljava/lang/String;)Ljava/lang/Object;
Expand Down
Loading
Loading