File: SubscriptionManager.h

package info (click to toggle)
mediainfo 20.09-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 14,732 kB
  • sloc: cpp: 15,682; objc: 2,760; sh: 1,343; xml: 926; python: 259; perl: 207; makefile: 173
file content (45 lines) | stat: -rw-r--r-- 1,872 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*  Copyright (c) MediaArea.net SARL. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license that can
 *  be found in the License.html file in the root of the source tree.
 */

#ifndef SubscriptionManager_h
#define SubscriptionManager_h

#import <Cocoa/Cocoa.h>
#import <StoreKit/StoreKit.h>

@interface SubscriptionManager : NSObject <SKProductsRequestDelegate> {
    SKProductsRequest *_request;
};
+(instancetype)shared;

-(void)requestSubscriptionDetails;
-(void)purchaseSubscription:(SKProduct *)product;
-(void)restoreSubscriptions;
-(void)parseSubscriptions;
-(void)purchaseSucceeded:(SKPaymentTransaction *)transaction;
-(void)purchaseDeferred:(SKPaymentTransaction *)transaction;
-(void)purchaseFailed:(SKPaymentTransaction *)transaction;
-(void)purchaseRestored:(SKPaymentTransaction *)transaction;
-(void)userNotifiedForSubscriptionEnd;

@property (readonly) BOOL isLifetime;
@property (readonly, strong) NSDate *subscriptionEndDate;
@property (readonly, strong) SKProduct *subscription;
@property (readonly, strong) SKProduct *lifetimeSubscription;
@property (readonly) NSArray *subscriptions;
@property (readonly) BOOL subscriptionActive;
@property (readonly) BOOL shouldNotifyUserForSubscription;
@property (readonly) BOOL shouldNotifyUserForSubscriptionEnd;

@property (class, readonly) NSNotificationName subscriptionStateChangedNotification;
@property (class, readonly) NSNotificationName subscriptionDetailsReadyNotification;
@property (class, readonly) NSNotificationName subscriptionDetailsUnaviableNotification;
@property (class, readonly) NSNotificationName subscriptionPurchaseSucceededNotification;
@property (class, readonly) NSNotificationName subscriptionPurchaseDeferredNotification;
@property (class, readonly) NSNotificationName subscriptionPurchaseFailedNotification;
@end

#endif /* SubscriptionManager_h */