This commit moves most of StoreKit-specific logic that was embedded into DamusPurpleView and places it into a new PurpleStoreKitManager struct, to make code more reusable and readable by separating view concerns from StoreKit-specific concerns. Most of the code here should be in feature parity with the previous behavior. However, a few logical improvements were made alongside this refactoring: - Improved StoreKit transaction update monitoring logic: Previously the view would stop listening for purchase updates after the first update. However, I made the program continuously listen for purchase updates, as recommended by Apple's documentation (https://developer.apple.com/documentation/storekit/transaction/3851206-updates) - Improved/simplified logic around getting extra information from the products: Information and the handling of product information was spread in a few separate places. I incorporated those bits of information into central and uniform interfaces on DamusPurpleType, to simplify logic and future changes. Signed-off-by: Daniel D’Aquino <daniel@daquino.me> Reviewed-by: William Casarin <jb55@jb55.com> Signed-off-by: William Casarin <jb55@jb55.com>
340 KiB
340 KiB