- no user facing changes
- fix: allow changing person properties after identify (#205)
- recording: fix observation on multiple threads in layout/draw is not supported for compose (#204)
- recording: add replay masking to jetpack compose views (#198)
- recording: fix crash when calling view.isVisible (#201)
- recording: change debouncerDelayMs default from 500ms to 1000ms (1s) (#201)
- recording: session replay respect feature flag variants (#197)
- recording:
OnTouchEventListener
try catch guard to swallow unexpected errors take 2 (#196)
- feat: add referrerURL automatically (#186)
- fix: isFeatureEnabled wasn't sending the $feature_flag_called event (#185)
- no user facing changes
- no user facing changes
- no user facing changes
- recording: respect session replay project settings from app start (#177)
- chore: add personProfiles support (#171)
- fix: do not clear events when reset is called (#170)
- fix: reload feature flags as anon user after reset is called (#170)
- recording: expose session id (#166)
- fix: rotate session id when reset is called (#168)
- feat: add
$is_identified
property (#167) - fix: identify should not allow already identified users (#167)
- recording: capture touch interaction off of main thread to avoid ANRs (#165)
- chore: use getNetworkCapabilities instead of getNetworkInfo to avoid ANRs (#164)
- feat: add emulator detection property to static context (#154)
- fix: ensure activity name is used when activity label is not defined (#153) and (#156)
- recording: mask views with
contentDescription
setting and maskWebView
if any masking is enabled (#149)
- chore: create ctor overloads for better Java DX (#148)
- recording:
OnTouchEventListener
try catch guard to swallow unexpected errors (#147)
- chore: screenshot masking (#145)
- chore: migrate UUID from v4 to v7 (#142)
- recording: fix registering the ViewTreeObserver when its not attached yet (#144)
- chore: change host to new address (#137)
- fix: rename groupProperties to groups for capture methods (#139)
- fix: PostHogLogger possibly leaks this ctor and crash (#140)
- feat: allow anonymous uuid generation to be customizable (#132)
- recording: fix removing the ViewTreeObserver when its not alive (#134)
- chore: register to sdk console (#131)
- fix: reduce batch size if API returns 413 (#130)
screenshot
image is now a JPEG at 30% quality to reduce size
- recording: add
screenshot
option for session replay instead of wireframe (#127)
- fix: set correct
User-Agent
for Android and returns session recording even if authorized domains is enabled (#125)
- recording: multiple fixes for better frame rate, padding, drawables (#118)
- fix: add replay props only if replay is enabled (#112)
- recording: do not capture password text even if masking is off (#111)
- recording: fix issue with nullable hint (#109)
- recording: adds
drawableConverter
option to convert custom Drawable to Bitmap (#110)
- fix do not allow nullable
sessionId
(#107)
- fix merge groups for events (#105)
- fix back compatibility with Kotlin 1.7 (#104)
- do not allow empty or blank
distinct_id
oranon_distinct_id
(#101)
- roll back compile API to 33 to keep back compatibility (#98)
- set
device_type
accordingly to Mobile, TV, or Tablet (#93)
- fix reset session when reset or close are called (#97)
- recording: fix missing windowAttachCount method after minification (#96)
- recording: clone drawable before using (#91)
- recording: gradient background support (#88)
- Set
Content-Length
header for gzip bodies because of more strict proxies (#86)
- Do not capture console logs and network requests if session replay and session are not active (#83)
- Send wireframe children for updated wireframes - mutation (#81)
- fix: Events Queue is only paused if there were errors (#78)
- fix: Do not report flag events if the flag has been reported with the same value (#78)
- fix: Check keyboard status during snapshot instead of using WindowInsets listener (#77)
- chore: Add mutations support to Session Recording (#72)
- chore: Session Recording as Experimental preview
- Check out the USAGE guide.
flush
forcefully sends events regardless the delay (#73)
- Send custom keyboard event when keyboard is open or close (#71)
- Android Session Recording - Alpha preview (#69)
Check out the USAGE guide.
Check out the updated docs.
Check out the USAGE guide.
- Bump Kotlin to min. 1.6 compatibility (#68)
minSdk
set to 21.- Rewritten in Kotlin.
- Do not set
$network_carrier
property if empty (#66)
- Add a
propertiesSanitizer
callback configuration (#64)
- Expose and allow to enable and disable the debug mode at runtime (#60)
- Cache and read feature flags on the disk (#61)
- Pick up consumer proguard rules correctly (#62)
- Fix leaked resources identified by StrictMode (#59)
- Keep trying to flush events till the device is connected (#54)
- Registered keys are cached in the disk preferences (#51)
- SDK only sends the
$feature_flag_called
event once per flag (#47) - Groups are cached in the disk (#48)
- isFeatureEnabled now returns true if multivariant flag (#42)
- getFeatureFlagPayload returns non strigified JSON (#44)
- Upsert flags when loading feature flags with computed errors (#38)
$active_feature_flags
event should filter non active flags (#41)
- Does not report screen events if there's no title (#32)
- Add
distinctId()
getter to the Public API (#33) - Add compatibility to Java 8 bytecode (previously Java 11+) (#37)
- Fixed small issues after code review
- Added many tests and fixed small issues
- Fix permission check for Network status (commit)
- Next major of the Android SDK rewritten in Kotlin
- Just testing the release automation
- Feature flags will be sent with payloads by default for capture and screen events.
- Revert: Feature flags will be sent with payloads by default. Default Options will be properly applied
- Feature flags will be sent with payloads by default. Default Options will be properly applied
- Add support for groups, simplefeature flags, and multivariate feature flags
- Fix NullPointerException in PostHogActivityLifecycleCallbacks
- Refactor properties
- Fix a bug where the name of the event changed to
$screen
instead of the key for the event screen
- Use
$screen_name
instead of$screen
as key for what screen you are on when sending a .screen event
- Use
.defaultOptions(new Options().putContext("$lib", "custom-lib"))
to pass a default context
- Added
.getAnonymousId()
toPostHog
- First version