AAInterface.m 1.9 KB
#import "AATypes.h"
#import "AAObjectCache.h"
#import "AABridge.h"

static NSString *AAStringFromUTF8String(const char *bytes) { return bytes ? @(bytes) : nil; }

#pragma mark - method
AATypeRef AACreateManager(AATypeClientRef *client) {
    AABridge *manager = [[AABridge alloc] initSDKWithClientReference:client];
    AAObjectCache *cache = [AAObjectCache sharedInstance];
    [cache.references setObject:manager forKey:[manager aa_referenceKey]];
    return (__bridge AATypeRef)manager;
}

void AASetManagerCallbacks(
        AATypeClientRef manager,
        // 流程结束,开始游戏
        ZAASDKCompletedCallback sdkCompletedCallback,
        ZAASDKCheckPaySuccess sdkCheckPayCallback
        ) {
    AABridge *internalManager = (__bridge AABridge *)manager;
    internalManager.sdkCompletedCallback = sdkCompletedCallback;
    internalManager.sdkCheckPayCallback = sdkCheckPayCallback;
}

int getUserAuthenticationStatus(AATypeRef manager) {
    AABridge *internalManager = (__bridge AABridge *)manager;
    return [internalManager getUserAuthenticationStatus];
}

int getUserAgeGroup(AATypeRef manager) {
    AABridge *internalManager = (__bridge AABridge *)manager;
    return [internalManager getUserAgeGroup];
}

void checkLeftTimeOfCurrentUser(AATypeRef manager) {
    AABridge *internalManager = (__bridge AABridge *)manager;
    [internalManager checkLeftTimeOfCurrentUser];
}

void checkPayWithAmount(AATypeRef manager, int amount) {
    AABridge *internalManager = (__bridge AABridge *)manager;
    [internalManager checkPayWithAmount:amount];
}

void recordPayWithAmount(AATypeRef manager, int amount) {
    AABridge *internalManager = (__bridge AABridge *)manager;
    [internalManager recordPayWithAmount:amount];
}


#pragma mark - Other methods
void AARelease(AATypeRef ref) {
    if (ref) {
        AAObjectCache *cache = [AAObjectCache sharedInstance];
        [cache.references removeObjectForKey:[(__bridge NSObject *)ref aa_referenceKey]];
    }
}