Commit Graph
3674 Commits
Author SHA1 Message Date
spaced4ndy c53f560e2d presentUnfinished comment 2026-10-02 18:42:00 +04:00
spaced4ndy db8755ec8d ios: let the purchase state screen scroll, so Dismiss stays reachable at large text sizes 2026-10-02 18:32:51 +04:00
spaced4ndy e80e885aac ios, android: catch a failed purchase presentation, word store purchase errors, and sweep abandoned purchases on a profile switch 2026-10-02 18:28:12 +04:00
spaced4ndy 7da11f71fd comment 2026-10-02 17:29:42 +04:00
spaced4ndy c74e313d02 android: close the badge purchase screens in one step; ios, android: drop the order screen spinner 2026-10-02 17:22:52 +04:00
spaced4ndy 3edeb3be02 android, desktop: offer the badge store lane when test products stand in for a store 2026-10-02 15:53:34 +04:00
spaced4ndy 7844706f01 ios, android: title both issuing screens alike, and let the purchase screens be dismissed 2026-10-02 15:22:24 +04:00
spaced4ndy e9fae20118 use dev service 2026-10-02 14:56:09 +04:00
spaced4ndy 5549471f48 ios, android: show the order spinner only after a second, without a backdrop 2026-10-02 14:41:58 +04:00
spaced4ndy 59668a5f44 ios, android: lighten the order summary rows, keeping the values a step bolder 2026-10-02 14:33:35 +04:00
spaced4ndy 8524bcefe5 fix kotlin build 2026-10-02 14:24:41 +04:00
spaced4ndy 62fc897cca ios, android: show the order spinner only while a purchase is issued, and shorten the tier cards 2026-10-02 14:20:26 +04:00
spaced4ndy ba4da8db74 ios, android: lead the badge cards with their price, and set the order card on a grouped background 2026-10-02 14:06:00 +04:00
spaced4ndy e33a06fc32 ios, android: show progress while a badge is bought, and say the payment is complete while it is issued 2026-10-02 13:47:39 +04:00
spaced4ndy a70ab3bac5 ios, android: show the real end date and full price at badge checkout, and disable subscriptions 2026-10-02 13:39:36 +04:00
spaced4ndy e143d0bbe1 badge service: say which payment funds no purchase when the claim is lost 2026-10-01 18:05:29 +04:00
spaced4ndy 84c6397175 badge service: name a funding's state by whether it was credited, not claimed 2026-10-01 17:04:15 +04:00
spaced4ndy f495e8b8c0 badge service: say why store products are not in the seeded catalog 2026-10-01 16:48:15 +04:00
spaced4ndy 730562a17d badge service: rename storeReceipt to toStoreReceipt 2026-10-01 16:18:16 +04:00
spaced4ndy 9a973af057 badge service: refuse a store quantity other than one, rather than multiply by it 2026-10-01 16:11:01 +04:00
spaced4ndy 039bf2e0f7 core, badge service: say how a verified transaction and a stored payment differ 2026-10-01 16:01:26 +04:00
spaced4ndy dc392994bf core, badge service: share one store transaction reference, and mark a verified transaction as such 2026-10-01 15:53:20 +04:00
spaced4ndy bebb8ef094 ios, android: don't promise a purchase that may not exist 2026-10-01 14:24:59 +04:00
spaced4ndy 7473e7a61c android: no badge can be bought where there is no platform store 2026-10-01 14:12:28 +04:00
spaced4ndy 8448bc28b5 ios, android: word purchase errors for a purchase, not a code 2026-10-01 14:12:05 +04:00
spaced4ndy 94675cda8c core, ios, android: rename BadgeStorePurchase to OpenStorePurchase, and drop a dead canBuy clause 2026-10-01 13:57:12 +04:00
spaced4ndy abf775020f core, ios, android: rename BadgeStorePurchase to OpenStorePurchase 2026-10-01 13:56:29 +04:00
spaced4ndy 75e990f120 ios, android: show a pending badge purchase only on the profile that made it, and keep the buyer's alert 2026-10-01 13:46:19 +04:00
spaced4ndy e3e4709381 ui: buy a badge in the app through the App Store or Google Play (#7608)
* ui: buy a badge in the app through the App Store or Google Play

* core, ios, android: create the badge store purchase record before the store charges

* core, ios, android: fixes from the store lane review

* ios, android: show a store purchase's badge only on the profile it was credited to
2026-10-01 08:46:35 +00:00
spaced4ndy 46bcd01dc5 badge service: do not treat a Play token the service will not send as Play's refusal 2026-09-30 17:57:42 +04:00
spaced4ndy 6245bfb206 badge service: only a store's verdict about a purchase is terminal 2026-09-30 17:31:57 +04:00
spaced4ndy f50cbb6eaf Merge branch 'badge-in-app-checkout' into f/badge-store-receipts 2026-09-29 18:21:57 +04:00
spaced4ndy f65d4a69a9 badge service: name what makes accepting unverified receipts safe 2026-09-29 18:20:28 +04:00
spaced4ndy 1b0e165b67 badge service: accept unverified store receipts behind a dev option, for testing the store lanes on devices 2026-09-29 17:39:31 +04:00
spaced4ndy 36da024394 ui: buy a badge in the browser, with a deep link back on mobile (#7592) 2026-09-29 10:30:57 +00:00
spaced4ndy 6b57302885 badge service: credit a store receipt only when the verified transaction is the one claimed; answer internal when a request throws 2026-09-28 18:18:37 +04:00
spaced4ndy 6fb0d453df badge service: refuse a store with no verifier as terminal; keep answering requests after one throws 2026-09-28 15:49:43 +04:00
spaced4ndy aa8e8271ae core: don't reveal another profile when delivering a store purchase; bound store checks and restrict Play ids 2026-09-25 19:13:04 +04:00
spaced4ndy a329f51620 core: deliver a store purchase to the profile it was bought under; verify store receipts safely 2026-09-25 18:39:39 +04:00
spaced4ndy e244d2e446 Merge branch 'badge-in-app-checkout' into f/badge-store-receipts 2026-09-25 17:42:04 +04:00
spaced4ndy 3e2d40447a docs: mark upgradeBadgeSubscription's badgeRequest as to be dropped; trim store purchase comments 2026-09-25 17:30:59 +04:00
spaced4ndy 0dc85d3311 badges: page ends an app purchase with a link instead of the code (#7589) 2026-09-25 13:23:28 +00:00
spaced4ndy d2b3e823d0 core: buy a badge with an App Store or Google Play purchase 2026-09-25 16:30:53 +04:00
spaced4ndy c171008229 docs: wireframes and plan for buying a badge in the app; ios, android: align the badge screens (#7572) 2026-09-25 09:59:13 +00:00
19e70faeec badges: webapp feature branch (#7548)
* badges: webapp (#7433)

* badges: service migrations, store and catalog

* badges: BTCPay provider and settlement poller

* badges: web listener and /api endpoints

* web: checkout single-page app

* badges: tests and BTCPay fixtures

* badges: README and ini reference

* badges: fix hex16 build on GHC 8.10.7

* badges: Stripe card lane

* badges: fix Stripe card checkout, add theming

* badges: add a discount row to the order summary

* badges: site navbar, embedding, theme, Forget move

* badges: use SB code prefix in web checkout

* badges: rename sxb app namespace to sb

* badges: embed checkout nav via site; keep original app navbar

* badges: post iframe height, apply site background when embedded

* badges: embed dark surfaces, steadier iframe height

* badges: hide app footer when embedded

* badges: size embedded body to content, not viewport

* badges: declare color-scheme to stop reload flash

* badges: fade shell in on load, no reload blank

* badges: prerender app shell into index.html

* badges: pre-paint theme, hide shell on deep reload

* badges: logo returns to landing client-side

* badges: embedded wizard back, buy-a-code, resume

* badges: signal app-managed screens, resume across reload

* badges: rebuild wizard history on deep load so Back walks it

* badges: carry welcome-page height as the iframe floor

* badges: keep selection on Buy a code; rename to Your codes

* badges: read web shell as UTF-8, not locale

* badges: resume the exact paid order after Stripe card redirect

* badges: move docker deploy under scripts

* badges: add serve_webapp toggle and webapp export

* badges: wire split webapp deploy in docker config

* badges: quiet agent logs by default

* badges: resume card redirect in the embedded frame

* badges: migrate Stripe adapter to PaymentIntents

* badges: correct Stripe restricted key scopes in ini example

* badges: card via Payment Element and PaymentIntents

* badges: fix stale Checkout Session wording in Stripe adapter

* badges: fix stale CheckoutActions reference in card comment

* badges: order shell stylesheet before bootstrap script

* badges: remove development card stand-in

* badges: theme the Stripe card form with the site palette

* badges: exclude web from the Haskell build stage

* badges: unify invoice cancel and mark canceled

* badges: default log level to info

* badges: unify closed-invoice buy-again button

* badges: mute agent connection logs at info level

* badges: show purchase time in local timezone in Your codes

* badges: log service events on own channel, quiet agent

* badges: fold service migrations into one baseline

* badges: run compose on postgres over host network

* badges: use high-res hero art

* badges: add web CI to catch stale builds

* badges: rebuild web shell from committed source

* badges: normalize invoice-code link and columns

* badges: drop unused columns, rename index

* badges: note deferred receipt_hash in migrations

* badges: apply code-review fixes

* badges: reduce comments across service and web

---------

Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* badges: improve web page (#7546)

* badges: improve web page

* improve layout

* improve layout

* fix

* small changes

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* badges: read one issuer key from the ini

* badges: move and group the service tests

* badges: service fixes (#7567)

* badges: match the redeem error wording in tests

* badges: drop unused imports in the bot tests

* badges: cancel Stripe orders when they expire

* badges: correct the Stripe config and docs

* badges: refuse to revoke a redeemed code

* badges: make the fake Stripe cancel like Stripe

* badges: limit replayed webhook deliveries

---------

Co-authored-by: sh <37271604+shumvgolove@users.noreply.github.com>
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
Co-authored-by: shum <github.shum@liber.li>
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
2026-09-25 09:01:51 +00:00
EvgenyandEvgeny @ SimpleX Chat 9a9ce70b2f core: fix connecting via prepared connection with contact card (#7575)
* core: fix connecting via prepared connection with contact card

* simplify

* merge transactions

* update query plans

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
2026-09-24 08:11:29 +01:00
spaced4ndy 0b9ae4d6de ui: open support SimpleX screen from badge and file alerts (#7563) 2026-09-23 09:34:47 +00:00
spaced4ndy fae017d5b3 ui: show close button on badges banner only after it was opened (#7560) 2026-09-22 13:40:56 +00:00
spaced4ndy 150897d637 core, ui: alert the user when badge renewal is failing (#7532) 2026-09-22 12:55:08 +00:00
spaced4ndy a3ac420e91 ui: one banner at a time in chat list (#7554) 2026-09-21 16:51:14 +00:00