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

Add StoreKit2 button #7400

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

pinkisemils
Copy link
Collaborator

@pinkisemils pinkisemils commented Dec 23, 2024

To aid with developing the server side changes for StoreKit2, I've added a button that generates a StoreKit2 receipt and sends it to the same endpoint on to our API. The button is only added in debug builds. Since this is a manager is let loose on the codebase they do not understand, please do review these changes diligently. XCode will complain about us not listening to transactions succeeding out-of-band - this is to be expected and we will fix this once we move to StoreKit2 properly - the changes I'm introducing here are not intended to be used in production.


This change is Reviewable

Copy link

linear bot commented Dec 23, 2024

Copy link
Contributor

@acb-mv acb-mv left a comment

Choose a reason for hiding this comment

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

Reviewed 7 of 7 files at r1, all commit messages.
Reviewable status: all files reviewed, 2 unresolved discussions (waiting on @pinkisemils)


ios/MullvadVPN/View controllers/Account/AccountViewController.swift line 305 at r1 (raw file):

        }
        guard case let .received(oldProduct) = productState,
              let accountData = interactor.deviceState.accountData

is the let accountData meant to be duplicated?


ios/MullvadVPN/Classes/AccessbilityIdentifier.swift line 41 at r1 (raw file):

    case logoutButton
    case purchaseButton
    case storekit2Button

nit: capitalisation; i.e., perhaps this should be storeKit2Button?

Copy link
Collaborator Author

@pinkisemils pinkisemils left a comment

Choose a reason for hiding this comment

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

Reviewable status: 4 of 7 files reviewed, 2 unresolved discussions (waiting on @acb-mv)


ios/MullvadVPN/Classes/AccessbilityIdentifier.swift line 41 at r1 (raw file):

Previously, acb-mv wrote…

nit: capitalisation; i.e., perhaps this should be storeKit2Button?

You're correct!


ios/MullvadVPN/View controllers/Account/AccountViewController.swift line 305 at r1 (raw file):

Previously, acb-mv wrote…

is the let accountData meant to be duplicated?

Done.

Copy link
Contributor

@acb-mv acb-mv left a comment

Choose a reason for hiding this comment

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

Reviewed 3 of 3 files at r2, all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved

@pinkisemils pinkisemils force-pushed the add-a-button-to-exercise-storekit2-in-debug-builds-ios-978 branch from ed515a1 to 911692b Compare December 27, 2024 13:00
@pinkisemils pinkisemils added the iOS Issues related to iOS label Jan 7, 2025
@pinkisemils pinkisemils requested a review from rablador January 7, 2025 09:23
Copy link
Contributor

@rablador rablador left a comment

Choose a reason for hiding this comment

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

I get a 400 from the API, "INVALID_INPUT". Is that expected before server side is done?

Reviewed 4 of 7 files at r1, 3 of 3 files at r2, all commit messages.
Reviewable status: all files reviewed, 3 unresolved discussions (waiting on @pinkisemils)


ios/MullvadVPN/Classes/AccessbilityIdentifier.swift line 41 at r3 (raw file):

    case logoutButton
    case purchaseButton
    case storeKit2Button

Nit: Unless we add E2E tests we don't need this. It doesn't hurt, but if this feature is being removed/renamed/other it seems likely we might forget to clean up this a11y id as well.


ios/MullvadVPN/View controllers/Account/AccountViewController.swift line 347 at r3 (raw file):

    private func sendReceiptToAPI(accountNumber: String, receipt: VerificationResult<Transaction>) async {
        do {
            // Accessing unsafe payload data because n

because "n"?


ios/MullvadVPN/View controllers/Account/PaymentAlertPresenter.swift line 39 at r3 (raw file):

    }

    func showAlertForStoreKitError(

We can use showAlertForError() above instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
iOS Issues related to iOS
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants