diff --git a/Runtime/GuruNetworkMonitor.meta b/Runtime/GuruNetworkMonitor.meta new file mode 100644 index 0000000..0a35a8c --- /dev/null +++ b/Runtime/GuruNetworkMonitor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 10f8491dbf6264bc393cb7578397ec7f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Plugins.meta b/Runtime/GuruNetworkMonitor/Plugins.meta new file mode 100644 index 0000000..5f47381 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc0062a7d36f144beabfdea9e3a8e2c7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Plugins/Android.meta b/Runtime/GuruNetworkMonitor/Plugins/Android.meta new file mode 100644 index 0000000..43cb178 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/Android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4725a71a48aec4a5083c37f5ff09a550 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Plugins/Android/connectivity-1.0.0.aar b/Runtime/GuruNetworkMonitor/Plugins/Android/connectivity-1.0.0.aar new file mode 100644 index 0000000..510efd0 Binary files /dev/null and b/Runtime/GuruNetworkMonitor/Plugins/Android/connectivity-1.0.0.aar differ diff --git a/Runtime/GuruNetworkMonitor/Plugins/Android/connectivity-1.0.0.aar.meta b/Runtime/GuruNetworkMonitor/Plugins/Android/connectivity-1.0.0.aar.meta new file mode 100644 index 0000000..48ef4ef --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/Android/connectivity-1.0.0.aar.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 05a3c5d94488c454ea77722fc8f0a80c +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Plugins/Android/proguard-user.txt b/Runtime/GuruNetworkMonitor/Plugins/Android/proguard-user.txt new file mode 100644 index 0000000..917e176 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/Android/proguard-user.txt @@ -0,0 +1,3 @@ +-keep class com.facebook.unity.* { *; } +-keepattributes Signature +-keep class com.guru.unity.monitor.** { *; } \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Plugins/Android/proguard-user.txt.meta b/Runtime/GuruNetworkMonitor/Plugins/Android/proguard-user.txt.meta new file mode 100644 index 0000000..19e972d --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/Android/proguard-user.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d0ac28ef06c604f789bb32b31225c157 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS.meta b/Runtime/GuruNetworkMonitor/Plugins/IOS.meta new file mode 100644 index 0000000..be1e78b --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/IOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5d09fde296334b46844a972d0289dcc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework.meta b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework.meta new file mode 100644 index 0000000..f93364a --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 18c322abb3a1e4d9eaea5e395dab1377 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: + AddToEmbeddedBinaries: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Connectivity b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Connectivity new file mode 100755 index 0000000..2018f7b Binary files /dev/null and b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Connectivity differ diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Headers/Connectivity-Swift.h b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Headers/Connectivity-Swift.h new file mode 100644 index 0000000..06a0939 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Headers/Connectivity-Swift.h @@ -0,0 +1,337 @@ +#if 0 +#elif defined(__arm64__) && __arm64__ +// Generated by Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5) +#ifndef CONNECTIVITY_SWIFT_H +#define CONNECTIVITY_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#if defined(__OBJC__) +#include +#endif +#if defined(__cplusplus) +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#endif +#if defined(__cplusplus) +#if defined(__arm64e__) && __has_include() +# include +#else +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# ifndef __ptrauth_swift_value_witness_function_pointer +# define __ptrauth_swift_value_witness_function_pointer(x) +# endif +# ifndef __ptrauth_swift_class_method_pointer +# define __ptrauth_swift_class_method_pointer(x) +# endif +#pragma clang diagnostic pop +#endif +#endif + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif +#if !defined(SWIFT_RUNTIME_NAME) +# if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +# else +# define SWIFT_RUNTIME_NAME(X) +# endif +#endif +#if !defined(SWIFT_COMPILE_NAME) +# if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +# else +# define SWIFT_COMPILE_NAME(X) +# endif +#endif +#if !defined(SWIFT_METHOD_FAMILY) +# if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +# else +# define SWIFT_METHOD_FAMILY(X) +# endif +#endif +#if !defined(SWIFT_NOESCAPE) +# if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +# else +# define SWIFT_NOESCAPE +# endif +#endif +#if !defined(SWIFT_RELEASES_ARGUMENT) +# if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +# else +# define SWIFT_RELEASES_ARGUMENT +# endif +#endif +#if !defined(SWIFT_WARN_UNUSED_RESULT) +# if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +# else +# define SWIFT_WARN_UNUSED_RESULT +# endif +#endif +#if !defined(SWIFT_NORETURN) +# if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +# else +# define SWIFT_NORETURN +# endif +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if !defined(SWIFT_DEPRECATED_OBJC) +# if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +# else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +# endif +#endif +#if defined(__OBJC__) +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#endif +#if !defined(SWIFT_EXTERN) +# if defined(__cplusplus) +# define SWIFT_EXTERN extern "C" +# else +# define SWIFT_EXTERN extern +# endif +#endif +#if !defined(SWIFT_CALL) +# define SWIFT_CALL __attribute__((swiftcall)) +#endif +#if !defined(SWIFT_INDIRECT_RESULT) +# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result)) +#endif +#if !defined(SWIFT_CONTEXT) +# define SWIFT_CONTEXT __attribute__((swift_context)) +#endif +#if !defined(SWIFT_ERROR_RESULT) +# define SWIFT_ERROR_RESULT __attribute__((swift_error_result)) +#endif +#if defined(__cplusplus) +# define SWIFT_NOEXCEPT noexcept +#else +# define SWIFT_NOEXCEPT +#endif +#if !defined(SWIFT_C_INLINE_THUNK) +# if __has_attribute(always_inline) +# if __has_attribute(nodebug) +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug)) +# else +# define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) +# endif +# else +# define SWIFT_C_INLINE_THUNK inline +# endif +#endif +#if defined(_WIN32) +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport) +#endif +#else +#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL) +# define SWIFT_IMPORT_STDLIB_SYMBOL +#endif +#endif +#if defined(__OBJC__) +#if __has_feature(objc_modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import Foundation; +@import ObjectiveC; +#endif + +#endif +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" +#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="Connectivity",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +#if defined(__OBJC__) +@class NSString; + +SWIFT_CLASS("_TtC12Connectivity12Connectivity") +@interface Connectivity : NSObject +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) Connectivity * _Nonnull shared;) ++ (Connectivity * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_NONE;) ++ (NSString * _Nonnull)CONNECTIVITY_NONE SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_WIFI;) ++ (NSString * _Nonnull)CONNECTIVITY_WIFI SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_MOBILE;) ++ (NSString * _Nonnull)CONNECTIVITY_MOBILE SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_ETHERNET;) ++ (NSString * _Nonnull)CONNECTIVITY_ETHERNET SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_VPN;) ++ (NSString * _Nonnull)CONNECTIVITY_VPN SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nonnull CONNECTIVITY_OTHER;) ++ (NSString * _Nonnull)CONNECTIVITY_OTHER SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +- (void)initializeWithCompletion:(void (^ _Nonnull)(BOOL))completion; +- (NSArray * _Nonnull)checkConnectionType SWIFT_WARN_UNUSED_RESULT; +@end + +#endif +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#if defined(__cplusplus) +#endif +#pragma clang diagnostic pop +#endif + +#else +#error unsupported Swift architecture +#endif diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Info.plist b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Info.plist new file mode 100644 index 0000000..392c2e1 Binary files /dev/null and b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Info.plist differ diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo new file mode 100644 index 0000000..b38f775 Binary files /dev/null and b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo differ diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json new file mode 100644 index 0000000..dc109fc --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json @@ -0,0 +1,9 @@ +{ + "ABIRoot": { + "kind": "Root", + "name": "TopLevel", + "printedName": "TopLevel", + "json_format_version": 8 + }, + "ConstValues": [] +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftdoc b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftdoc new file mode 100644 index 0000000..7b6dea0 Binary files /dev/null and b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftmodule b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftmodule new file mode 100644 index 0000000..6c0647b Binary files /dev/null and b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftmodule differ diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/module.modulemap b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/module.modulemap new file mode 100644 index 0000000..7558c8a --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +framework module Connectivity { + header "Connectivity-Swift.h" + requires objc +} diff --git a/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/_CodeSignature/CodeResources b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..b6fdc99 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Plugins/IOS/Connectivity.framework/_CodeSignature/CodeResources @@ -0,0 +1,168 @@ + + + + + files + + Headers/Connectivity-Swift.h + + yQkPWwZ2klcFBQT3c4PI/gTVVAE= + + Info.plist + + n4FM+14bzgCqiae7BEnOfj78dFA= + + Modules/Connectivity.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo + + KGmpTymRqrX9y4GV/j+eFuhhTYM= + + Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json + + FSPnLbho3G+LL9smI3XgVOqBIQ4= + + Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftdoc + + NaKg9acNtBzWngYfwx3Nt50tA5o= + + Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftmodule + + TBHp8ndBz6+t9eK5i+Q7XONqD+w= + + Modules/module.modulemap + + JQ0IhYrWi46ysbcXxnNfARgJPro= + + + files2 + + Headers/Connectivity-Swift.h + + hash2 + + HIhSgITt+HNjHvu2O1pDvyjgx9HdyI801+Q9Bn92Suc= + + + Modules/Connectivity.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo + + hash2 + + HnYY+N0JWfujm6LckQtevFuYEFW4uYx4hcAkaFgCZp0= + + + Modules/Connectivity.swiftmodule/arm64-apple-ios.abi.json + + hash2 + + KnRdWE4y6t4QM5zi5JDptPdHFgJy1Tku+7GLkZS2aNM= + + + Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftdoc + + hash2 + + sgsu9CnSXAG3fxoW1HBRLZ9lCTX38BR3y2eik7e37zU= + + + Modules/Connectivity.swiftmodule/arm64-apple-ios.swiftmodule + + hash2 + + S73u4XvAyezKkKReZVBDl16w7MSeeI6FBXUJ9OirCI4= + + + Modules/module.modulemap + + hash2 + + 07XGBKw7w58ugYy09lbnsq9IhqStrsOHCKCfwm/MrpU= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Runtime/GuruNetworkMonitor/README.md b/Runtime/GuruNetworkMonitor/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Runtime/GuruNetworkMonitor/README.md.meta b/Runtime/GuruNetworkMonitor/README.md.meta new file mode 100644 index 0000000..e2b4d8a --- /dev/null +++ b/Runtime/GuruNetworkMonitor/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a0a25c648675a494eb50f2dd3159ff81 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Runtime.meta b/Runtime/GuruNetworkMonitor/Runtime.meta new file mode 100644 index 0000000..178e456 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d1121778023d64cafad6d7eb947140d0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs b/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs new file mode 100644 index 0000000..f596716 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs @@ -0,0 +1,104 @@ + +namespace Guru.Network +{ + + using System; + using System.Collections.Generic; + using System.Linq; + using UnityEngine; + + public class NetworkStatusMonitor + { + private const string Tag = "[NET]"; + private const string NETWORK_STATUS_NONE = "none"; + private const string NETWORK_STATUS_MOBILE = "mobile"; + private const string NETWORK_STATUS_WIFI = "wifi"; + private const string NETWORK_STATUS_ETHERNET = "ethernet"; + private const string NETWORK_STATUS_VPN = "vpn"; + private const string NETWORK_STATUS_TETHER = "tether"; + + private bool _isReady = false; + + private INetworkStatusProxy _proxy; + private INetworkStatusProxy Proxy + { + get + { + if (_proxy == null) + { +#if UNITY_EDITOR + _proxy = new NetworkStatusEditor(); +#elif UNITY_ANDROID + _proxy = new NetworkStatusAndroid(); +#elif UNITY_IOS + _proxy = new NetworkStatusIOS(); +#endif + throw new NotImplementedException("Can't find NetworkStatusProxy instance!!"); + } + return _proxy; + } + + } + + private List _statusNameList = new List() + { + NETWORK_STATUS_NONE, + NETWORK_STATUS_ETHERNET, + NETWORK_STATUS_WIFI, + NETWORK_STATUS_MOBILE, + NETWORK_STATUS_VPN, + NETWORK_STATUS_TETHER + }; + + + + public void Init(Action onInitComplete = null) + { + Proxy.Init(success => + { + _isReady = success; + onInitComplete?.Invoke(success); + }); + } + + /// + /// 获取网络状态 + /// + /// + public string GetNetworkStatus() + { + if (_isReady) + { + var status = Proxy.GetNetworkStatus(); + if (status != null && status.Length > 0) + { + string statusName = ""; + for (int i = 0; i < _statusNameList.Count; i++) + { + // 根据名称优先级, 先获取到的优先上报 + statusName = _statusNameList[i]; + if (status.Contains(statusName)) + { + return statusName; + } + } + } + } + + return NETWORK_STATUS_NONE; + } + + // private void OnProxyInitComplete(bool success) + // { + // if (success) + // { + // Debug.Log($"{Tag} --- NetworkStatusMonitor init success"); + // } + // else + // { + // Debug.LogError($"{Tag} --- NetworkStatusMonitor init failed"); + // } + // } + + } +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs.meta b/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs.meta new file mode 100644 index 0000000..0108453 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/NetworkStatusMonitor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 89389dfafc844651bb8f6a23865edca6 +timeCreated: 1721958852 \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy.meta b/Runtime/GuruNetworkMonitor/Runtime/Proxy.meta new file mode 100644 index 0000000..1550194 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1981d1e0510af48ff81cbd4db201318f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs new file mode 100644 index 0000000..9c1acf9 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs @@ -0,0 +1,16 @@ + +namespace Guru.Network +{ + using System; + + /// + /// 网络状态代理 + /// + public interface INetworkStatusProxy + { + void Init(Action onInitComplete); + + string[] GetNetworkStatus(); + + } +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs.meta b/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs.meta new file mode 100644 index 0000000..1f02917 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/INetworkStatusProxy.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: aeba66b9f9e4413a8475bf5cc363fae1 +timeCreated: 1721957685 \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs new file mode 100644 index 0000000..060c991 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs @@ -0,0 +1,56 @@ + + +namespace Guru.Network +{ + using System; + using UnityEngine; + + public class NetworkStatusAndroid: INetworkStatusProxy + { + private const string Tag = "[NET]"; +#if UNITY_ANDROID + private const string CONNECTIVITY_ANDROID_CLASS_NAME = "com.guru.unity.monitor.Connectivity"; + private AndroidJavaObject _connectivity; + private bool _isReady = false; + +#endif + + + /// + /// 初始化 + /// + /// + public void Init(Action onInitComplete) + { +#if UNITY_ANDROID + AndroidJavaObject currentActivity = new AndroidJavaObject("com.unity3d.player.UnityPlayer").GetStatic("currentActivity"); + _connectivity = new AndroidJavaObject(CONNECTIVITY_ANDROID_CLASS_NAME).CallStatic("getInstance"); + _isReady = _connectivity.Call("initialize", currentActivity); + + Debug.LogWarning($"{Tag} --- Network status init result:{_isReady}"); + Debug.LogWarning($"{Tag} --- _connectivity:{_connectivity}"); + onInitComplete?.Invoke(_isReady); // 调用初始化回调 +#endif + } + + /// + /// 获取网络状态 + /// + /// + public string[] GetNetworkStatus() + { +#if UNITY_ANDROID + if (_connectivity == null) + { + Debug.LogError($"{Tag} --- GetNetworkStatus :: _connectivity is Null!!"); + } + else + { + return _connectivity.Call("checkConnectionType"); + } + +#endif + return new string[] {"none"}; + } + } +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs.meta b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs.meta new file mode 100644 index 0000000..6cc4698 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusAndroid.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1c5f41b5f3bc4aa2993e263f733deeb0 +timeCreated: 1721957773 \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs new file mode 100644 index 0000000..b3436a3 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs @@ -0,0 +1,50 @@ + + +namespace Guru.Network +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using UnityEngine; + + + public class NetworkStatusEditor:INetworkStatusProxy + { + + /// + /// 初始化 + /// + /// + public async void Init(Action onInitComplete) + { + await Task.Delay(300); + Debug.Log($"[NET][EDT] --- init NetworkStatusEditor success int Editor"); + onInitComplete?.Invoke(true); + } + + /// + /// 获取网络状态 + /// + /// + public string[] GetNetworkStatus() + { + List status = new List(4); + + switch (Application.internetReachability) + { + case NetworkReachability.NotReachable: + status.Add("none"); + break; + case NetworkReachability.ReachableViaCarrierDataNetwork: + status.Add("mobile"); + break; + + case NetworkReachability.ReachableViaLocalAreaNetwork: + status.Add("wifi"); + break; + } + + return status.ToArray(); + } + } +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs.meta b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs.meta new file mode 100644 index 0000000..9b24582 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusEditor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 657ecf666aa14a7dacef1160591c8115 +timeCreated: 1721958984 \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs new file mode 100644 index 0000000..7ed7475 --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs @@ -0,0 +1,60 @@ + + +namespace Guru.Network +{ + using System; + using System.Runtime.InteropServices; + using AOT; + + + public class NetworkStatusIOS:INetworkStatusProxy + { + +#if UNITY_IOS + [DllImport("__Internal")] + private static extern IntPtr checkNetworkConnection(); + + [DllImport("__Internal")] + private static extern void freeCheckNetworkConnectionResult(IntPtr result); + + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + private delegate void InitializationCallback(bool success); + + [DllImport("__Internal")] + private static extern void initializeConnectivity(InitializationCallback callback); + + private static Action _initCompleteCallback; + + [MonoPInvokeCallback(typeof(InitializationCallback))] + private static void OnInitializationComplete(bool success) + { + _initCompleteCallback?.Invoke(success); + } +#endif + + +#if UNITY_IOS + +#endif + + + public void Init(Action onInitComplete) + { +#if UNITY_IOS + _initCompleteCallback = onInitComplete; + initializeConnectivity(OnInitializationComplete); +#endif + } + + public string[] GetNetworkStatus() + { +#if UNITY_IOS + IntPtr ptr = checkNetworkConnection(); + string result = Marshal.PtrToStringAnsi(ptr); + freeCheckNetworkConnectionResult(ptr); + return result.Split(','); +#endif + return new string[] {"none"}; + } + } +} \ No newline at end of file diff --git a/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs.meta b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs.meta new file mode 100644 index 0000000..6d1c12d --- /dev/null +++ b/Runtime/GuruNetworkMonitor/Runtime/Proxy/NetworkStatusIOS.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f51ea25e1ecf41c18d7fcd9951d61aeb +timeCreated: 1721958507 \ No newline at end of file