Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
5e80387
fix(ui): unexpected italic text style
mstopin-ppg Dec 3, 2025
81a2f38
fix(ui): close button
mstopin-ppg Dec 3, 2025
97b1513
fix(ui): add emoji compat
mstopin-ppg Dec 9, 2025
8faa758
refactor: restructure sdk layout
mstopin-ppg Jan 9, 2026
fa14285
refactor: push
mstopin-ppg Jan 26, 2026
1efde08
refactor: inapp
mstopin-ppg Jan 28, 2026
87bb549
feat(push): add changelog
mstopin-ppg Feb 4, 2026
14ab4a6
feat(inapp): add changelog
mstopin-ppg Feb 4, 2026
86cfcb5
feat(inapp): update readme
mstopin-ppg Feb 4, 2026
a9a4570
chore(push): move readme from root
mstopin-ppg Feb 4, 2026
78eee87
feat: add root-level readme
mstopin-ppg Feb 4, 2026
4fd56c9
chore: remove jitpack
mstopin-ppg Feb 5, 2026
af8c0b7
chore(push): remove sample signing
mstopin-ppg Feb 5, 2026
d34a4af
Merge remote-tracking branch 'origin/master' into 4.0.0-rc
mstopin-ppg Feb 5, 2026
ebb12e0
fix: CI
mstopin-ppg Feb 5, 2026
386be90
fix: CI
mstopin-ppg Feb 5, 2026
17c3e68
feat(push): update readme
mstopin-ppg Feb 6, 2026
02ace87
feat(push): refactor beacon
mstopin-ppg Feb 9, 2026
732d4c4
fix(push): tests
mstopin-ppg Feb 9, 2026
c08cc96
feat(push): update readme
mstopin-ppg Feb 12, 2026
1d61ca1
feat(push): rename NotificationHandler to NotificationClickHandler
mstopin-ppg Feb 12, 2026
f434535
feat: initial publishing config
mstopin-ppg Feb 13, 2026
ee7ad90
feat(core): refactor module structure
mstopin-ppg Feb 16, 2026
f5d5921
feat(core): refactor config
mstopin-ppg Feb 16, 2026
55d1599
feat: improve java interop
mstopin-ppg Feb 16, 2026
4cd6540
feat: bump minSdk to 28
mstopin-ppg Feb 16, 2026
18f1440
feat: add publishing CI
mstopin-ppg Feb 16, 2026
53cbab5
feat(core): add JVMOverloads to config
mstopin-ppg Feb 17, 2026
da115ef
feat: update READMEs
mstopin-ppg Feb 17, 2026
ba7180d
chore(core): regenerate api dump
mstopin-ppg Feb 17, 2026
5a06475
fix: prevent WindowLeaked and crash when activity is destroyed during…
amarose Feb 20, 2026
866f1af
fix: Bring back return of PPG instance from migrateToNewProject
amarose Feb 25, 2026
a57d4a9
feat: add live activities support
amarose Jun 23, 2026
76baf47
fix(prefs): isolate notification ids in a dedicated file with determi…
amarose Jun 23, 2026
76b57ea
feat(token): reconcile push token on startup
amarose Jun 23, 2026
4976aa6
fix(network): bound error body read and harden error parsing
amarose Jun 23, 2026
b476645
chore(manifest): drop unused FOREGROUND_SERVICE and legacy INSTANCE_I…
amarose Jun 23, 2026
3b626d5
fix(token): persist registered token in registerToken
amarose Jun 23, 2026
6963d0d
fix(events): report delivered using subscriber from payload
amarose Jun 23, 2026
4e041d4
fix(work): use REPLACE policy so newest register token wins
amarose Jun 23, 2026
ab6f352
fix(events): deliver delivered/clicked events durably via WorkManager
amarose Jun 23, 2026
82c2f55
fix(push): remove notification null-asserts and report delivered on f…
amarose Jun 23, 2026
d2bfe15
perf(push): fetch notification image and icon in parallel
amarose Jun 23, 2026
8c7eb41
feat(observability): expose swallowed SDK errors via error callback
amarose Jun 23, 2026
f3f4d7c
fix(lifecycle): cancel previous scope after successful migration
amarose Jun 23, 2026
466483f
refactor: extract subscription and live-activity controllers from Pus…
amarose Jun 23, 2026
2a2d352
test: cover token persistence, events, prefs eviction and subscriptio…
amarose Jun 23, 2026
2f6bf37
style(sample): fix ktlint violations in live activity demo
amarose Jun 24, 2026
91c0314
fix(log): guard logDebug against use before SDK initialization
amarose Jun 30, 2026
b2ebd3f
feat(push): add subscription metadata
mstopin-ppg Jul 5, 2026
f97352b
feat(push): refresh push token on change
mstopin-ppg Jul 13, 2026
5ae9059
fix(push): remove WorkManager init
mstopin-ppg Jul 13, 2026
cf85458
refactor(push): move live activities behind a facade
mstopin-ppg Jul 13, 2026
ee3989f
feat(push): add suspend API to live activities
mstopin-ppg Jul 13, 2026
3b9f641
refactor(push): remove work manager subscription API
mstopin-ppg Jul 13, 2026
c4f11da
chore(push): annotate suspend API with JvmSynthetic
mstopin-ppg Jul 13, 2026
cc159a1
feat(push): remove migrateToNewProject function
mstopin-ppg Jul 15, 2026
6f1f449
feat(push): extract runtime
mstopin-ppg Jul 15, 2026
483ccba
feat(push): add deinitialize function
mstopin-ppg Jul 15, 2026
7a84559
feat(push): extract callbacks
mstopin-ppg Jul 16, 2026
775d106
feat(push): separate beacon construction and dispatch
mstopin-ppg Jul 17, 2026
aaa331f
refactor(push): refactor work manager workers
mstopin-ppg Jul 17, 2026
437f6e8
feat(push): serialize live activity operations
mstopin-ppg Jul 17, 2026
8f2d77e
feat(push): improve error handling
mstopin-ppg Jul 20, 2026
fff4925
feat(push): support queued 3.x events
mstopin-ppg Jul 20, 2026
2ada3fa
feat(push): deinitialize live activities
mstopin-ppg Jul 20, 2026
e565ffd
fix(push): docs
mstopin-ppg Jul 20, 2026
a1e6dea
feat: minSdk 28 -> 26
mstopin-ppg Jul 21, 2026
c2bde00
fix(push): sendBeacon throws error when unsubscribed
mstopin-ppg Jul 21, 2026
2130ba6
fix(push): delay token sync periodic work
mstopin-ppg Jul 21, 2026
fdd75ce
fix(push): add test fixtures
mstopin-ppg Jul 21, 2026
01bd87b
fix(PushDelegate): add flags required for splash screen to deliver ve…
amarose Jul 21, 2026
c6c4dc5
Merge branch '4.0.0-rc' of https://github.com/ppgco/android-sdk into …
amarose Jul 21, 2026
1ccf8f0
fix(push): test cleanup
mstopin-ppg Jul 22, 2026
5f79724
fix(push): tests
mstopin-ppg Jul 22, 2026
82e61a7
feat(push): add r8 rules
mstopin-ppg Jul 27, 2026
370b881
fix(push): docs
mstopin-ppg Jul 27, 2026
686bb29
feat: update CI
mstopin-ppg Jul 27, 2026
662b29e
Merge branch 'master' into 4.0.0-rc
mstopin-ppg Jul 28, 2026
861b22d
feat: run publish CI
mstopin-ppg Jul 28, 2026
18b2288
feat: document migration to Maven Central
mstopin-ppg Jul 28, 2026
e376802
fix(push): test
mstopin-ppg Jul 28, 2026
019f7f4
fix(push): add message to assertions
mstopin-ppg Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ insert_final_newline=true
indent_style=space
indent_size=2

[{*.kt, *.kts}]
[{*.kt,*.kts}]
ktlint_code_style = ktlint_official
ktlint_standard_property-naming = disabled
ktlint_standard_no-wildcard-imports = disabled
ktlint_function_naming_ignore_when_annotated_with = Composable
ktlint_function_naming_ignore_when_annotated_with = Composable
12 changes: 12 additions & 0 deletions .github/actions/setup-ci/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Setup CI

runs:
using: "composite"
steps:
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 21
cache: gradle

- uses: gradle/actions/wrapper-validation@v6
27 changes: 27 additions & 0 deletions .github/workflows/api-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: API Check

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
api-check:
name: Check public API compatibility
runs-on: ubuntu-latest

permissions:
contents: read

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Setup CI
uses: ./.github/actions/setup-ci

- name: Check API compatibility
run: ./gradlew apiCheck --no-daemon --build-cache
40 changes: 40 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: CI

on:
push:
pull_request:

jobs:
ktlint:
name: Lint
runs-on: ubuntu-latest

permissions:
contents: read

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Setup CI
uses: ./.github/actions/setup-ci

- name: Run Ktlint
run: ./gradlew ktlintCheck --no-daemon

tests:
name: Tests
runs-on: ubuntu-latest

permissions:
contents: read

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Setup CI
uses: ./.github/actions/setup-ci

- name: Run tests
run: ./gradlew test --no-daemon --build-cache
33 changes: 0 additions & 33 deletions .github/workflows/deploy.yml

This file was deleted.

24 changes: 0 additions & 24 deletions .github/workflows/ktlint-check.yml

This file was deleted.

56 changes: 56 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Publish to Maven Central

on:
workflow_dispatch:
inputs:
module:
description: Module to publish
required: true
type: choice
options:
- core
- push
- inapp
- all

push:
branches:
- 4.0.0-rc

jobs:
publish:
runs-on: ubuntu-latest

permissions:
contents: read

env:
MODULE: ${{ github.event_name == 'workflow_dispatch' && inputs.module || 'all' }}

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Setup CI
uses: ./.github/actions/setup-ci

- name: Verify module API
run: |
if [[ "$MODULE" == "all" ]]; then
./gradlew apiCheck --no-daemon --stacktrace
else
./gradlew ":$MODULE:apiCheck" --no-daemon --stacktrace
fi

- name: Upload to Maven Central
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}
run: |
if [[ "$MODULE" == "all" ]]; then
./gradlew publishToMavenCentral --no-daemon --stacktrace
else
./gradlew ":$MODULE:publishToMavenCentral" --no-daemon --stacktrace
fi
55 changes: 0 additions & 55 deletions .github/workflows/test.yml

This file was deleted.

2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,3 @@ captures/
.DS_Store
*.iml
local.properties

sample/.idea/
Loading