Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Staging branch for next major release 3.0.0 #161

Merged
merged 28 commits into from
Oct 23, 2024
Merged

Staging branch for next major release 3.0.0 #161

merged 28 commits into from
Oct 23, 2024

Commits on May 1, 2024

  1. Separation of API, State, and Side Effects (#160)

    * Separation of API, State and Side Effects. Largely left tests alone except for adding a couple and adjusting setup to accommodate changes.
    
    * Use consistent nullability pattern so we aren't converting between empty string and null with identifiers.
    Added proper deserializing of the profile attributes store property
    
    * There is indeed a better way to do that
    
    * Renamed some of the new classes and added new tests for them
    
    * Doc blocks, minor cleanup, naming conventions
    
    * Fix nullability test
    Don't need immutable profile to expose attributes, but would be good to expose single attribute getter
    
    * First round of PR comments
    
    * missed another arg label
    
    ---------
    
    Co-authored-by: Evan Masseau <>
    evan-masseau authored May 1, 2024
    Configuration menu
    Copy the full SHA
    3c92609 View commit details
    Browse the repository at this point in the history
  2. Set an alpha version number on this branch in case it gets pulled by …

    …a snapshot jitpack build
    Evan Masseau committed May 1, 2024
    Configuration menu
    Copy the full SHA
    643205c View commit details
    Browse the repository at this point in the history
  3. Remove deprecated lifecycle property (#156)

    Co-authored-by: Evan Masseau <>
    evan-masseau authored May 1, 2024
    Configuration menu
    Copy the full SHA
    86f399c View commit details
    Browse the repository at this point in the history
  4. Transition profile identifier keys to internal visibility (#155)

    Co-authored-by: Evan Masseau <>
    evan-masseau authored May 1, 2024
    Configuration menu
    Copy the full SHA
    5d94168 View commit details
    Browse the repository at this point in the history

Commits on May 2, 2024

  1. Configuration menu
    Copy the full SHA
    4a6f806 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2024

  1. Publish old value of a state property (#164)

    Co-authored-by: Evan Masseau <>
    evan-masseau authored May 6, 2024
    Configuration menu
    Copy the full SHA
    99a60a6 View commit details
    Browse the repository at this point in the history

Commits on May 9, 2024

  1. Rename these properties so it is clear what true and false mean. Fix …

    …polarity of how we check background data (#166)
    
    Co-authored-by: Evan Masseau <>
    evan-masseau authored May 9, 2024
    Configuration menu
    Copy the full SHA
    93e5b4f View commit details
    Browse the repository at this point in the history
  2. Added tests for publishing of the old value (#165)

    * Added test coverage for publishing old value with change callback
    
    * Broadcast on reset, and tests
    
    * Reset as a cleanup step, not a setup step.
    
    ---------
    
    Co-authored-by: Evan Masseau <>
    evan-masseau authored May 9, 2024
    Configuration menu
    Copy the full SHA
    c807b01 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9b45e07 View commit details
    Browse the repository at this point in the history

Commits on May 22, 2024

  1. Using token endpoint for profile requests when a push token is presen…

    …t in SDK state (#168)
    
    * making token request if token is present
    
    * minor refactor
    
    * fixed tests
    
    * added some tests
    
    * removed push state when resetting
    
    * updated tests
    
    * fixed side effects tests
    
    * removed unused comment
    
    * updated readme
    
    * finally fixed tests
    
    * Fix some setup/teardown in tests to take care of isolation issues. (#169)
    
    Co-authored-by: Evan Masseau <>
    
    ---------
    
    Co-authored-by: Evan C Masseau <[email protected]>
    ajaysubra and evan-masseau authored May 22, 2024
    Configuration menu
    Copy the full SHA
    be79c1c View commit details
    Browse the repository at this point in the history

Commits on May 23, 2024

  1. API Header Fix: Move attempt count increment to before we write reque…

    …st headers into the url connection. (#170)
    
    Co-authored-by: Evan Masseau <>
    evan-masseau authored May 23, 2024
    Configuration menu
    Copy the full SHA
    08590d8 View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2024

  1. Merge branch 'master' into rel/3.0.0

    # Conflicts:
    #	README.md
    #	docs/index.html
    #	sdk/analytics/src/main/java/com/klaviyo/analytics/Klaviyo.kt
    #	sdk/analytics/src/test/java/com/klaviyo/analytics/KlaviyoTest.kt
    #	sdk/analytics/src/test/java/com/klaviyo/analytics/KlaviyoUninitializedTest.kt
    #	sdk/analytics/src/test/java/com/klaviyo/analytics/networking/requests/KlaviyoApiRequestTest.kt
    #	versions.properties
    Evan Masseau committed Jun 11, 2024
    Configuration menu
    Copy the full SHA
    c2f4c3c View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2024

  1. setProfileAttribute should accept any Serializable value not just Str…

    …ing (#179)
    
    * changing profile attribute to accept serializable
    
    * updating for 3.0 release
    
    * logging incorrectly typed profile attribute
    dan-peluso authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    a1d2789 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2024

  1. Concurrent network observer fix (#180)

    * using synchronized list for observers
    
    * adding concurreny safe structure to all observer instances
    
    * Refresh versions syntax for dependencies
    
    * removing concurrent suffix
    
    ---------
    
    Co-authored-by: Evan Masseau <>
    dan-peluso authored Aug 21, 2024
    Configuration menu
    Copy the full SHA
    1151ee2 View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2024

  1. Retry on 503 (#181)

    * Sending 503 through retry logic
    
    * removing version.properties unecessary changes
    
    * fixing http import
    dan-peluso authored Aug 27, 2024
    Configuration menu
    Copy the full SHA
    56b0c14 View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2024

  1. CHNL-6996 Proguard docs and consumer rules (#184)

    * Adding consumer rules and updating docs
    
    * progaurd changes
    dan-peluso authored Sep 6, 2024
    Configuration menu
    Copy the full SHA
    f4dd259 View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2024

  1. Introduce a de-dupe mechanism for push notifications (#177)

    * Introduce tag support so we have the option to de-dupe push notifications similar to how stock FCM sdk can.
    
    * adding constant id and null-checked notification tag
    
    ---------
    
    Co-authored-by: Evan Masseau <>
    Co-authored-by: Daniel Peluso <[email protected]>
    evan-masseau and dan-peluso authored Sep 10, 2024
    Configuration menu
    Copy the full SHA
    adb5915 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2024

  1. CHNL-3990 Remove identifiers from state if format issues (#186)

    * Remove identifiers from state if API reports format errors
    
    * pr comments
    
    * removing extraneous decoder test
    dan-peluso authored Sep 12, 2024
    Configuration menu
    Copy the full SHA
    e3c795e View commit details
    Browse the repository at this point in the history

Commits on Sep 17, 2024

  1. Exposing klaviyo SDK name and version privately (#185)

    * added klaviyo sdk name and version
    
    * Update sdk/analytics/src/main/java/com/klaviyo/analytics/DeviceProperties.kt
    
    Co-authored-by: dan-peluso <[email protected]>
    
    * fixed some formatting
    
    * updated the SDK name to be non lazy
    
    ---------
    
    Co-authored-by: dan-peluso <[email protected]>
    ajaysubra and dan-peluso authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    1bdb857 View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2024

  1. Configuration menu
    Copy the full SHA
    1b368e9 View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2024

  1. Refactor singleton service initializers (#172)

    * Convert SystemClock to class
    
    * These shouldn't have been mocked in this test class, its masking a bug.
    
    * Remove unnecessary, slightly risky, object initializers in core.
    
    * Restore system clock to object -- I take it back, we don't have to get rid of objects, just have to be more particular about using object initializers.
    
    * KLog can be a singleton object, no risk there.
    
    * This simple fix would take care of the issue, but i still don't love KlaviyoApiClient being a singleton object that can hit an unrecoverable exception in its initializer...
    
    * Found a balanced solution for KlaviyoApiClient -- converting this to a class was complicated by the inner class, and besides it works well as a singleton. The initializer was the real problem, so I extract the listeners from the initializer and created a startService method. This is safe to run multiple times if the SDK is re-initialized.
    
    * Prefer this way: we don't need to wrap any of the code in this method body except the methods that are themselves protected anyway
    
    * Forgot to add back starting the service in these tests' setup
    
    * Naming convention things
    
    * First shot at a pre-init buffer for failed operations. Needs tests
    
    * Added test of in-memory slate
    
    * I don't like import *
    
    * Added comments, logging, and wrapped the retry operations in safeCall
    
    * Trivial: move error logging out of exception class. Now that we wrap all SDK functions in safeCall, it is more straightforward to log from there.
    
    * Allow ONLY handlePush to be buffered
    
    * Remove unused test
    
    * keep 3.0 version increment
    
    * don't add this back
    
    * never trust github
    
    * Update versions.properties
    
    ---------
    
    Co-authored-by: Evan Masseau <>
    evan-masseau authored Sep 23, 2024
    Configuration menu
    Copy the full SHA
    7038aa1 View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2024

  1. Merge branch 'master' into rel/3.0.0

    # Conflicts:
    #	README.md
    #	docs/index.html
    #	sdk/core/src/main/java/com/klaviyo/core/lifecycle/KlaviyoLifecycleMonitor.kt
    #	sdk/core/src/main/java/com/klaviyo/core/model/SharedPreferencesDataStore.kt
    #	sdk/core/src/main/java/com/klaviyo/core/networking/KlaviyoNetworkMonitor.kt
    #	versions.properties
    Evan Masseau committed Sep 26, 2024
    Configuration menu
    Copy the full SHA
    481bbcd View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2024

  1. Automatically check push permission status on app resume (#188)

    * Protect against double subscriptions
    * readme and migration guide updates
    
    ---------
    
    Co-authored-by: Evan Masseau <>
    evan-masseau authored Oct 3, 2024
    Configuration menu
    Copy the full SHA
    dd59dbc View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2024

  1. Configuration menu
    Copy the full SHA
    97cd99e View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2024

  1. [CHNL-12521] Looking for react-native strings to determine sdk name a…

    …nd version for config (#191)
    
    * resource reading maven attmept
    
    * working resource share attempt
    
    * update log level
    
    * fixing unit tests and working resource sharing
    
    * pr comments
    
    * fixing config
    
    * replace bump version task with xml-based task
    
    * fixing unit test
    
    * fixing file pathing for composite builds
    
    * fixing bump version task
    
    * removing build config field from build.gradle
    
    * using readXml for default config
    
    * removing unused versionFor import
    dan-peluso authored Oct 16, 2024
    Configuration menu
    Copy the full SHA
    6050a5d View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2024

  1. Configuration menu
    Copy the full SHA
    240435a View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2024

  1. Configuration menu
    Copy the full SHA
    dbe8395 View commit details
    Browse the repository at this point in the history
  2. bumping version

    dan-peluso committed Oct 23, 2024
    Configuration menu
    Copy the full SHA
    32d1dc6 View commit details
    Browse the repository at this point in the history