platform_api.g.dart 11.9 KB
// // Copyright 2013 The Flutter Authors. All rights reserved.
// Autogenerated from Pigeon (v25.5.0), do not edit directly.
// See also: https://pub.dev/packages/pigeon
// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers

import 'dart:async';
import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;

import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer;
import 'package:flutter/services.dart';

PlatformException _createConnectionError(String channelName) {
  return PlatformException(
    code: 'channel-error',
    message: 'Unable to establish connection on channel: "$channelName".',
  );
}
bool _deepEquals(Object? a, Object? b) {
  if (a is List && b is List) {
    return a.length == b.length &&
        a.indexed
        .every(((int, dynamic) item) => _deepEquals(item.$2, b[item.$1]));
  }
  if (a is Map && b is Map) {
    return a.length == b.length && a.entries.every((MapEntry<Object?, Object?> entry) =>
        (b as Map<Object?, Object?>).containsKey(entry.key) &&
        _deepEquals(entry.value, b[entry.key]));
  }
  return a == b;
}


enum AppleProductPaymentErrorMsg {
  missingUUID,
  productNotFound,
  userCancelled,
  failedVerification,
  unknown,
}

class AppleSignInModel {
  AppleSignInModel({
    required this.userId,
    this.email,
    this.nickname,
    this.identityToken,
  });

  String userId;

  String? email;

  String? nickname;

  String? identityToken;

  List<Object?> _toList() {
    return <Object?>[
      userId,
      email,
      nickname,
      identityToken,
    ];
  }

  Object encode() {
    return _toList();  }

  static AppleSignInModel decode(Object result) {
    result as List<Object?>;
    return AppleSignInModel(
      userId: result[0]! as String,
      email: result[1] as String?,
      nickname: result[2] as String?,
      identityToken: result[3] as String?,
    );
  }

  @override
  // ignore: avoid_equals_and_hash_code_on_mutable_classes
  bool operator ==(Object other) {
    if (other is! AppleSignInModel || other.runtimeType != runtimeType) {
      return false;
    }
    if (identical(this, other)) {
      return true;
    }
    return _deepEquals(encode(), other.encode());
  }

  @override
  // ignore: avoid_equals_and_hash_code_on_mutable_classes
  int get hashCode => Object.hashAll(_toList())
;
}

class AppleProductInfo {
  AppleProductInfo({
    required this.productId,
    required this.originPriceDescription,
    this.priceDescription,
    required this.originPrice,
    this.price,
    required this.isTrialPeriod,
  });

  String productId;

  String originPriceDescription;

  String? priceDescription;

  double originPrice;

  double? price;

  bool isTrialPeriod;

  List<Object?> _toList() {
    return <Object?>[
      productId,
      originPriceDescription,
      priceDescription,
      originPrice,
      price,
      isTrialPeriod,
    ];
  }

  Object encode() {
    return _toList();  }

  static AppleProductInfo decode(Object result) {
    result as List<Object?>;
    return AppleProductInfo(
      productId: result[0]! as String,
      originPriceDescription: result[1]! as String,
      priceDescription: result[2] as String?,
      originPrice: result[3]! as double,
      price: result[4] as double?,
      isTrialPeriod: result[5]! as bool,
    );
  }

  @override
  // ignore: avoid_equals_and_hash_code_on_mutable_classes
  bool operator ==(Object other) {
    if (other is! AppleProductInfo || other.runtimeType != runtimeType) {
      return false;
    }
    if (identical(this, other)) {
      return true;
    }
    return _deepEquals(encode(), other.encode());
  }

  @override
  // ignore: avoid_equals_and_hash_code_on_mutable_classes
  int get hashCode => Object.hashAll(_toList())
;
}

class AppleProductPaymentResult {
  AppleProductPaymentResult({
    required this.productId,
    this.appAccountToken,
    this.originalTransactionId,
    this.transactionId,
    this.success,
    this.errorMessage,
  });

  String productId;

  String? appAccountToken;

  String? originalTransactionId;

  String? transactionId;

  bool? success;

  /// 错误描述:
  /// 和AppleProductPaymentErrorMsg匹配的flutter处理,
  /// 不匹配的则是StoreKit 直接给的错误描述,直接展示即可
  String? errorMessage;

  List<Object?> _toList() {
    return <Object?>[
      productId,
      appAccountToken,
      originalTransactionId,
      transactionId,
      success,
      errorMessage,
    ];
  }

  Object encode() {
    return _toList();  }

  static AppleProductPaymentResult decode(Object result) {
    result as List<Object?>;
    return AppleProductPaymentResult(
      productId: result[0]! as String,
      appAccountToken: result[1] as String?,
      originalTransactionId: result[2] as String?,
      transactionId: result[3] as String?,
      success: result[4] as bool?,
      errorMessage: result[5] as String?,
    );
  }

  @override
  // ignore: avoid_equals_and_hash_code_on_mutable_classes
  bool operator ==(Object other) {
    if (other is! AppleProductPaymentResult || other.runtimeType != runtimeType) {
      return false;
    }
    if (identical(this, other)) {
      return true;
    }
    return _deepEquals(encode(), other.encode());
  }

  @override
  // ignore: avoid_equals_and_hash_code_on_mutable_classes
  int get hashCode => Object.hashAll(_toList())
;
}


class _PigeonCodec extends StandardMessageCodec {
  const _PigeonCodec();
  @override
  void writeValue(WriteBuffer buffer, Object? value) {
    if (value is int) {
      buffer.putUint8(4);
      buffer.putInt64(value);
    }    else if (value is AppleProductPaymentErrorMsg) {
      buffer.putUint8(129);
      writeValue(buffer, value.index);
    }    else if (value is AppleSignInModel) {
      buffer.putUint8(130);
      writeValue(buffer, value.encode());
    }    else if (value is AppleProductInfo) {
      buffer.putUint8(131);
      writeValue(buffer, value.encode());
    }    else if (value is AppleProductPaymentResult) {
      buffer.putUint8(132);
      writeValue(buffer, value.encode());
    } else {
      super.writeValue(buffer, value);
    }
  }

  @override
  Object? readValueOfType(int type, ReadBuffer buffer) {
    switch (type) {
      case 129: 
        final int? value = readValue(buffer) as int?;
        return value == null ? null : AppleProductPaymentErrorMsg.values[value];
      case 130: 
        return AppleSignInModel.decode(readValue(buffer)!);
      case 131: 
        return AppleProductInfo.decode(readValue(buffer)!);
      case 132: 
        return AppleProductPaymentResult.decode(readValue(buffer)!);
      default:
        return super.readValueOfType(type, buffer);
    }
  }
}

class PlatformHostApi {
  /// Constructor for [PlatformHostApi].  The [binaryMessenger] named argument is
  /// available for dependency injection.  If it is left null, the default
  /// BinaryMessenger will be used which routes to the host platform.
  PlatformHostApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''})
      : pigeonVar_binaryMessenger = binaryMessenger,
        pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : '';
  final BinaryMessenger? pigeonVar_binaryMessenger;

  static const MessageCodec<Object?> pigeonChannelCodec = _PigeonCodec();

  final String pigeonVar_messageChannelSuffix;

  /// 返回完整的 User-Agent 字符串,由 native 侧组装:
  /// `{systemWebViewUA} {appName}/{versionCode}({versionName})({manufacturer}##{brand}##{model}; {OS}{osVersion}; {height}x{width})(huawei)`
  Future<String> getFullUserAgent() async {
    final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.PlatformHostApi.getFullUserAgent$pigeonVar_messageChannelSuffix';
    final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
      pigeonVar_channelName,
      pigeonChannelCodec,
      binaryMessenger: pigeonVar_binaryMessenger,
    );
    final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(null);
    final List<Object?>? pigeonVar_replyList =
        await pigeonVar_sendFuture as List<Object?>?;
    if (pigeonVar_replyList == null) {
      throw _createConnectionError(pigeonVar_channelName);
    } else if (pigeonVar_replyList.length > 1) {
      throw PlatformException(
        code: pigeonVar_replyList[0]! as String,
        message: pigeonVar_replyList[1] as String?,
        details: pigeonVar_replyList[2],
      );
    } else if (pigeonVar_replyList[0] == null) {
      throw PlatformException(
        code: 'null-error',
        message: 'Host platform returned null value for non-null return value.',
      );
    } else {
      return (pigeonVar_replyList[0] as String?)!;
    }
  }

  /// 请求苹果登录
  Future<AppleSignInModel?> requestAppleSignIn() async {
    final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.PlatformHostApi.requestAppleSignIn$pigeonVar_messageChannelSuffix';
    final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
      pigeonVar_channelName,
      pigeonChannelCodec,
      binaryMessenger: pigeonVar_binaryMessenger,
    );
    final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(null);
    final List<Object?>? pigeonVar_replyList =
        await pigeonVar_sendFuture as List<Object?>?;
    if (pigeonVar_replyList == null) {
      throw _createConnectionError(pigeonVar_channelName);
    } else if (pigeonVar_replyList.length > 1) {
      throw PlatformException(
        code: pigeonVar_replyList[0]! as String,
        message: pigeonVar_replyList[1] as String?,
        details: pigeonVar_replyList[2],
      );
    } else {
      return (pigeonVar_replyList[0] as AppleSignInModel?);
    }
  }

  /// 查询指定id的苹果商品
  Future<AppleProductInfo?> requestAppleProductInfo(String productId) async {
    final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.PlatformHostApi.requestAppleProductInfo$pigeonVar_messageChannelSuffix';
    final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
      pigeonVar_channelName,
      pigeonChannelCodec,
      binaryMessenger: pigeonVar_binaryMessenger,
    );
    final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[productId]);
    final List<Object?>? pigeonVar_replyList =
        await pigeonVar_sendFuture as List<Object?>?;
    if (pigeonVar_replyList == null) {
      throw _createConnectionError(pigeonVar_channelName);
    } else if (pigeonVar_replyList.length > 1) {
      throw PlatformException(
        code: pigeonVar_replyList[0]! as String,
        message: pigeonVar_replyList[1] as String?,
        details: pigeonVar_replyList[2],
      );
    } else {
      return (pigeonVar_replyList[0] as AppleProductInfo?);
    }
  }

  /// 从服务器下单后请求苹果支付
  Future<AppleProductPaymentResult?> performApplePayment(String productId, String uuid) async {
    final String pigeonVar_channelName = 'dev.flutter.pigeon.doublefeel_flutter.PlatformHostApi.performApplePayment$pigeonVar_messageChannelSuffix';
    final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
      pigeonVar_channelName,
      pigeonChannelCodec,
      binaryMessenger: pigeonVar_binaryMessenger,
    );
    final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[productId, uuid]);
    final List<Object?>? pigeonVar_replyList =
        await pigeonVar_sendFuture as List<Object?>?;
    if (pigeonVar_replyList == null) {
      throw _createConnectionError(pigeonVar_channelName);
    } else if (pigeonVar_replyList.length > 1) {
      throw PlatformException(
        code: pigeonVar_replyList[0]! as String,
        message: pigeonVar_replyList[1] as String?,
        details: pigeonVar_replyList[2],
      );
    } else {
      return (pigeonVar_replyList[0] as AppleProductPaymentResult?);
    }
  }
}