// Autogenerated from Pigeon (v26.3.2), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: unused_import, unused_shown_name // ignore_for_file: type=lint import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List; import 'package:flutter/services.dart'; import 'package:meta/meta.dart' show immutable, protected, visibleForTesting; Object? _extractReplyValueOrThrow( List? replyList, String channelName, { required bool isNullValid, }) { if (replyList == null) { throw PlatformException( code: 'channel-error', message: 'Unable to establish connection on channel: "$channelName".', ); } else if (replyList.length > 1) { throw PlatformException( code: replyList[0]! as String, message: replyList[1] as String?, details: replyList[2], ); } else if (!isNullValid && (replyList.isNotEmpty && replyList[0] == null)) { throw PlatformException( code: 'null-error', message: 'Host platform returned null value for non-null return value.', ); } return replyList.firstOrNull; } bool _deepEquals(Object? a, Object? b) { if (identical(a, b)) { return true; } if (a is double && b is double) { if (a.isNaN && b.isNaN) { return true; } return a == 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) { if (a.length != b.length) { return false; } for (final MapEntry entryA in a.entries) { bool found = false; for (final MapEntry entryB in b.entries) { if (_deepEquals(entryA.key, entryB.key)) { if (_deepEquals(entryA.value, entryB.value)) { found = true; break; } else { return false; } } } if (!found) { return false; } } return true; } return a == b; } int _deepHash(Object? value) { if (value is List) { return Object.hashAll(value.map(_deepHash)); } if (value is Map) { int result = 0; for (final MapEntry entry in value.entries) { result += (_deepHash(entry.key) * 31) ^ _deepHash(entry.value); } return result; } if (value is double && value.isNaN) { // Normalize NaN to a consistent hash. return 0x7FF8000000000000.hashCode; } if (value is double && value == 0.0) { // Normalize -0.0 to 0.0 so they have the same hash code. return 0.0.hashCode; } return value.hashCode; } class LocalizedResult { LocalizedResult({required this.languageName, this.countryName}); String languageName; String? countryName; List _toList() { return [languageName, countryName]; } Object encode() { return _toList(); } static LocalizedResult decode(Object result) { result as List; return LocalizedResult( languageName: result[0]! as String, countryName: result[1] as String?, ); } @override // ignore: avoid_equals_and_hash_code_on_mutable_classes bool operator ==(Object other) { if (other is! LocalizedResult || other.runtimeType != runtimeType) { return false; } if (identical(this, other)) { return true; } return _deepEquals(languageName, other.languageName) && _deepEquals(countryName, other.countryName); } @override // ignore: avoid_equals_and_hash_code_on_mutable_classes int get hashCode => _deepHash([runtimeType, ..._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 LocalizedResult) { buffer.putUint8(129); writeValue(buffer, value.encode()); } else { super.writeValue(buffer, value); } } @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { case 129: return LocalizedResult.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); } } } class LocaleResolver { /// Constructor for [LocaleResolver]. 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. LocaleResolver({ BinaryMessenger? binaryMessenger, String messageChannelSuffix = '', }) : pigeonVar_binaryMessenger = binaryMessenger, pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); final String pigeonVar_messageChannelSuffix; Future resolve( String languageTag, String targetLangouageTag, ) async { final pigeonVar_channelName = 'dev.flutter.pigeon.locale_resolver.LocaleResolver.resolve$pigeonVar_messageChannelSuffix'; final pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); final Future pigeonVar_sendFuture = pigeonVar_channel.send( [languageTag, targetLangouageTag], ); final pigeonVar_replyList = await pigeonVar_sendFuture as List?; final Object? pigeonVar_replyValue = _extractReplyValueOrThrow( pigeonVar_replyList, pigeonVar_channelName, isNullValid: false, ); return pigeonVar_replyValue! as LocalizedResult; } }