更新版本号至1.0.28.1,移除调试代码,新增隐私信息文件,优化房间消息处理逻辑,增加网络检测相关功能,调整部分接口参数,修复UI问题,更新本地化字符串,更新 SUD SDK

This commit is contained in:
edwinQQQ
2025-05-26 15:24:31 +08:00
parent c765e78ec6
commit e5c8baad34
43 changed files with 527 additions and 88 deletions

View File

@@ -13695,7 +13695,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 20.20.60;
MARKETING_VERSION = 20.20.61;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -14028,7 +14028,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 20.20.60;
MARKETING_VERSION = 20.20.61;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",

View File

@@ -123,18 +123,6 @@
[Api faceTabNewList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
[[XPRoomFaceTool shareFaceTool] cacheChatFaces:data.data];
#if DEBUG
NSArray *arr = [[XPRoomFaceTool shareFaceTool] loadFaceTabs];
ChatFaceResponse *tab = [arr xpSafeObjectAtIndex:0];
if (tab) {
ChatFaceVo *vo = [tab.faceNewVoList xpSafeObjectAtIndex:0];
if (vo) {
[[XPRoomFaceTool shareFaceTool] loadFace:^(NSString * _Nonnull path) {
} with:vo];
}
}
#endif
}
}];
}

View File

@@ -46,7 +46,7 @@ isPhoneXSeries = [[UIApplication sharedApplication] delegate].window.safeAreaIns
#define kFontHeavy(font) [UIFont systemFontOfSize:kGetScaleWidth(font) weight:UIFontWeightHeavy]
///内置版本号
#define PI_App_Version @"1.0.28"
#define PI_App_Version @"1.0.28.1"
///渠道
#define PI_App_Source @"appstore"
#define PI_Test_Flight @"TestFlight"

View File

@@ -580,6 +580,62 @@
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.Bloom",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.ChannelMixer",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.ChromaticAberration",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.ColorAdjustments",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.ColorCurves",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.ColorLookup",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.DepthOfField",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.FilmGrain",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
@@ -587,6 +643,34 @@
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.LensDistortion",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.LiftGammaGain",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.MotionBlur",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.PaniniProjection",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
@@ -594,6 +678,27 @@
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.ShadowsMidtonesHighlights",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.SplitToning",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.Tonemapping",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
@@ -601,6 +706,20 @@
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.Vignette",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",
"fullManagedTypeName": "UnityEngine.Rendering.Universal.WhiteBalance",
"moduleName": "",
"usedInScenes": []
},
{
"managedAssemblyName": "Unity.RenderPipelines.Universal.Runtime.dll",
"nativeClass": "",

View File

@@ -65,9 +65,26 @@
<type fullname="UnityEngine.Rendering.UI.UIFoldout" preserve="nothing"/>
</assembly>
<assembly fullname="Unity.RenderPipelines.Universal.Runtime">
<type fullname="UnityEngine.Rendering.Universal.Bloom" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.ChannelMixer" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.ChromaticAberration" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.ColorAdjustments" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.ColorCurves" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.ColorLookup" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.DepthOfField" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.FilmGrain" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.ForwardRendererData" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.LensDistortion" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.LiftGammaGain" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.MotionBlur" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.PaniniProjection" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.PostProcessData" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.ShadowsMidtonesHighlights" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.SplitToning" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.Tonemapping" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.Vignette" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.WhiteBalance" preserve="nothing"/>
<type fullname="UnityEngine.Rendering.Universal.XRSystemData" preserve="nothing"/>
</assembly>
<assembly fullname="Unity.TextMeshPro">

View File

@@ -1 +1 @@
-out="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/tempStrip" -x="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/../platform_native_link.xml" -x="/var/folders/t_/nv6pb43n7gs22s471rm9cds40000gn/T/tmp47b031a8.tmp" -x="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/TypesInScenes.xml" -x="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/SerializedTypes.xml" -x="/Users/herbert/Documents/sudcpp-sdk-unity/Assets/link.xml" -d="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Assembly-CSharp.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Mirror.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/kcp2k.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Unity.RenderPipelines.Universal.Runtime.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Unity.TextMeshPro.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/ILRuntime.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Unity.RenderPipelines.Core.Runtime.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/UnityEngine.UI.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Mirror.Authenticators.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Telepathy.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/where-allocations.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/SimpleWebTransport.dll" --include-unity-root-assembly="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Mirror.Components.dll" --dotnetruntime=il2cpp --dotnetprofile=unityaot --use-editor-options --include-directory="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed" --rule-set=Conservative --editor-data-file="/Users/herbert/Documents/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/EditorToUnityLinkerData.json" --platform=iOS --enable-engine-module-stripping --engine-stripping-flag=EnableUnityConnect --engine-stripping-flag=EnablePerformanceReporting --engine-stripping-flag=EnableAnalytics --engine-modules-asset-file="/Applications/Unity/Hub/Editor/2020.3.41f1c1/PlaybackEngines/iOSSupport/modules.asset"
-out="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/tempStrip" -x="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/../platform_native_link.xml" -x="/var/folders/x9/5550td_110q12hvkxws9t86w0000gn/T/tmp19a34011.tmp" -x="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/TypesInScenes.xml" -x="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/SerializedTypes.xml" -x="/Users/kaniel/workspaces/sudcpp-sdk-unity/Assets/link.xml" -d="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Assembly-CSharp.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Mirror.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/kcp2k.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Unity.RenderPipelines.Universal.Runtime.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Arabic.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Unity.TextMeshPro.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/ILRuntime.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Unity.RenderPipelines.Core.Runtime.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/UnityEngine.UI.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Mirror.Authenticators.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Telepathy.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/where-allocations.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/SimpleWebTransport.dll" --include-unity-root-assembly="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/Mirror.Components.dll" --dotnetruntime=il2cpp --dotnetprofile=unityaot --use-editor-options --include-directory="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed" --rule-set=Conservative --editor-data-file="/Users/kaniel/workspaces/sudcpp-sdk-unity/Temp/StagingArea/Data/Managed/EditorToUnityLinkerData.json" --platform=iOS --enable-engine-module-stripping --engine-stripping-flag=EnableUnityConnect --engine-stripping-flag=EnablePerformanceReporting --engine-stripping-flag=EnableAnalytics --engine-modules-asset-file="/Applications/Unity/Hub/Editor/2020.3.48f1c1/PlaybackEngines/iOSSupport/modules.asset"

View File

@@ -1 +1 @@
{"names":["UnityEngine.dll","UnityEngine.AIModule.dll","UnityEngine.ARModule.dll","UnityEngine.AccessibilityModule.dll","UnityEngine.AndroidJNIModule.dll","UnityEngine.AnimationModule.dll","UnityEngine.AssetBundleModule.dll","UnityEngine.AudioModule.dll","UnityEngine.AutoStreamingModule.dll","UnityEngine.ClothModule.dll","UnityEngine.CloudFoundationModule.dll","UnityEngine.CoreModule.dll","UnityEngine.CrashReportingModule.dll","UnityEngine.DSPGraphModule.dll","UnityEngine.DirectorModule.dll","UnityEngine.GIModule.dll","UnityEngine.GameCenterModule.dll","UnityEngine.GridModule.dll","UnityEngine.HotReloadModule.dll","UnityEngine.IMGUIModule.dll","UnityEngine.ImageConversionModule.dll","UnityEngine.InputModule.dll","UnityEngine.InputLegacyModule.dll","UnityEngine.JSONSerializeModule.dll","UnityEngine.LocalizationModule.dll","UnityEngine.ParticleSystemModule.dll","UnityEngine.PerformanceReportingModule.dll","UnityEngine.PhysicsModule.dll","UnityEngine.Physics2DModule.dll","UnityEngine.ProfilerModule.dll","UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll","UnityEngine.ScreenCaptureModule.dll","UnityEngine.SharedInternalsModule.dll","UnityEngine.SpriteMaskModule.dll","UnityEngine.SpriteShapeModule.dll","UnityEngine.StreamingModule.dll","UnityEngine.SubstanceModule.dll","UnityEngine.SubsystemsModule.dll","UnityEngine.TLSModule.dll","UnityEngine.TerrainModule.dll","UnityEngine.TerrainPhysicsModule.dll","UnityEngine.TextCoreModule.dll","UnityEngine.TextRenderingModule.dll","UnityEngine.TilemapModule.dll","UnityEngine.UIModule.dll","UnityEngine.UIElementsModule.dll","UnityEngine.UIElementsNativeModule.dll","UnityEngine.UIWidgetsModule.dll","UnityEngine.UNETModule.dll","UnityEngine.UmbraModule.dll","UnityEngine.UnityAnalyticsModule.dll","UnityEngine.UnityAnalyticsCommonModule.dll","UnityEngine.UnityConnectModule.dll","UnityEngine.UnityCurlModule.dll","UnityEngine.UnityTestProtocolModule.dll","UnityEngine.UnityWebRequestModule.dll","UnityEngine.UnityWebRequestAssetBundleModule.dll","UnityEngine.UnityWebRequestAudioModule.dll","UnityEngine.UnityWebRequestTextureModule.dll","UnityEngine.UnityWebRequestWWWModule.dll","UnityEngine.VFXModule.dll","UnityEngine.VRModule.dll","UnityEngine.VehiclesModule.dll","UnityEngine.VideoModule.dll","UnityEngine.WindModule.dll","UnityEngine.XRModule.dll","Assembly-CSharp.dll","Mirror.dll","kcp2k.dll","Unity.RenderPipelines.Universal.Shaders.dll","Unity.RenderPipelines.Universal.Runtime.dll","Unity.Timeline.dll","Unity.TextMeshPro.dll","ILRuntime.dll","Unity.RenderPipelines.Core.Runtime.dll","Unity.RenderPipelines.Core.ShaderLibrary.dll","UnityEngine.UI.dll","Unity.Mathematics.dll","Cinemachine.dll","Unity.RenderPipeline.Universal.ShaderLibrary.dll","Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary.dll","Mirror.Authenticators.dll","Telepathy.dll","where-allocations.dll","SimpleWebTransport.dll","Mirror.Components.dll","Debugger.dll","ILRuntime.Mono.Cecil.Mdb.dll","ILRuntime.Mono.Cecil.dll","ILRuntime.Mono.Cecil.Pdb.dll","DOTween.dll","CString.dll"],"types":[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]}
{"names":["UnityEngine.dll","UnityEngine.AIModule.dll","UnityEngine.ARModule.dll","UnityEngine.AccessibilityModule.dll","UnityEngine.AndroidJNIModule.dll","UnityEngine.AnimationModule.dll","UnityEngine.AssetBundleModule.dll","UnityEngine.AudioModule.dll","UnityEngine.AutoStreamingModule.dll","UnityEngine.ClothModule.dll","UnityEngine.CloudFoundationModule.dll","UnityEngine.CoreModule.dll","UnityEngine.CrashReportingModule.dll","UnityEngine.DSPGraphModule.dll","UnityEngine.DirectorModule.dll","UnityEngine.GIModule.dll","UnityEngine.GameCenterModule.dll","UnityEngine.GridModule.dll","UnityEngine.HotReloadModule.dll","UnityEngine.IMGUIModule.dll","UnityEngine.ImageConversionModule.dll","UnityEngine.InputModule.dll","UnityEngine.InputLegacyModule.dll","UnityEngine.JSONSerializeModule.dll","UnityEngine.LocalizationModule.dll","UnityEngine.ParticleSystemModule.dll","UnityEngine.PerformanceReportingModule.dll","UnityEngine.PhysicsModule.dll","UnityEngine.Physics2DModule.dll","UnityEngine.ProfilerModule.dll","UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll","UnityEngine.ScreenCaptureModule.dll","UnityEngine.SharedInternalsModule.dll","UnityEngine.SpriteMaskModule.dll","UnityEngine.SpriteShapeModule.dll","UnityEngine.StreamingModule.dll","UnityEngine.SubstanceModule.dll","UnityEngine.SubsystemsModule.dll","UnityEngine.TLSModule.dll","UnityEngine.TerrainModule.dll","UnityEngine.TerrainPhysicsModule.dll","UnityEngine.TextCoreModule.dll","UnityEngine.TextRenderingModule.dll","UnityEngine.TilemapModule.dll","UnityEngine.UIModule.dll","UnityEngine.UIElementsModule.dll","UnityEngine.UIElementsNativeModule.dll","UnityEngine.UIWidgetsModule.dll","UnityEngine.UNETModule.dll","UnityEngine.UmbraModule.dll","UnityEngine.UnityAnalyticsModule.dll","UnityEngine.UnityAnalyticsCommonModule.dll","UnityEngine.UnityConnectModule.dll","UnityEngine.UnityCurlModule.dll","UnityEngine.UnityTestProtocolModule.dll","UnityEngine.UnityWebRequestModule.dll","UnityEngine.UnityWebRequestAssetBundleModule.dll","UnityEngine.UnityWebRequestAudioModule.dll","UnityEngine.UnityWebRequestTextureModule.dll","UnityEngine.UnityWebRequestWWWModule.dll","UnityEngine.VFXModule.dll","UnityEngine.VRModule.dll","UnityEngine.VehiclesModule.dll","UnityEngine.VideoModule.dll","UnityEngine.WindModule.dll","UnityEngine.XRModule.dll","Assembly-CSharp.dll","Mirror.dll","kcp2k.dll","Unity.RenderPipelines.Universal.Shaders.dll","Unity.RenderPipelines.Universal.Runtime.dll","Arabic.dll","Unity.Timeline.dll","Unity.TextMeshPro.dll","ILRuntime.dll","Unity.RenderPipelines.Core.Runtime.dll","Unity.RenderPipelines.Core.ShaderLibrary.dll","UnityEngine.UI.dll","Unity.Mathematics.dll","Cinemachine.dll","Unity.RenderPipeline.Universal.ShaderLibrary.dll","Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary.dll","Mirror.Authenticators.dll","Telepathy.dll","where-allocations.dll","SimpleWebTransport.dll","Mirror.Components.dll","Debugger.dll","ILRuntime.Mono.Cecil.Mdb.dll","ILRuntime.Mono.Cecil.dll","ILRuntime.Mono.Cecil.Pdb.dll","DOTween.dll","CString.dll"],"types":[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -15,6 +15,9 @@ typedef NS_ENUM(NSUInteger, GameCheckoutStatus) {
/** 下载中 */
GAME_CHECKOUT_CHECKOUTING,
/** 文件下载完成,校验文件完整性 */
GAME_CHECKOUT_CHECK_FILE,
/** 已暂停 */
GAME_CHECKOUT_PAUSE,

View File

@@ -29,7 +29,7 @@
/// @param mgId 游戏id
/// @param mgPath 游戏路径app assets路径下
/// 最低版本v1.1.52.xx
- (void)addEmbeddedMGPkg:(int64_t) mgId mgPath:(NSString*) mgPath;
- (void)addEmbeddedMGPkg:(int64_t) mgId mgPath:(NSString*_Nonnull) mgPath;
/// 移除游戏嵌入包
/// @param mgId
@@ -40,15 +40,54 @@
/// @param mgId 游戏ID
/// @return mgPath
/// 最低版本v1.1.52.xx
- (NSString *)getEmbeddedMGPkgPath:(int64_t) mgId;
- (NSString *_Nullable)getEmbeddedMGPkgPath:(int64_t) mgId;
/// 设置加载游戏时,是否使用后台模式,默认为true
/// 设置加载游戏时,是否使用后台模式,默认为false
/// @param mode true: 使用后台模式 false使用默认模式
/// 最低版本v1.2.7.xx
- (void) setBackgroundMode:(BOOL) mode;
/// 获取加载游戏时,是否使用后台模式,默认为true
/// 获取加载游戏时,是否使用后台模式,默认为false
/// @return true: 使用后台模式 false使用默认模式
/// 最低版本v1.2.7.xx
- (BOOL) getBackgroundMode;
/**
* 小游戏是否能设置AudioSession的AudioSessionCategory的开关
* 是否允许小游戏设置AudioSessionCategory
* @param enable
* YES: (默认)允许小游戏设置Category
* NO: 不允许小游戏设置Category由应用控制AudioSessionCategory
*/
- (void)setEnableAudioSessionCategory:(BOOL)enable;
/**
* 小游戏是否能设置AudioSession的AudioSessionCategory的开关
* 是否允许小游戏设置AudioSessionCategory
* @return YES: (默认)允许小游戏设置Category NO: 不允许小游戏设置Category由应用控制AudioSessionCategory
*/
- (BOOL)getEnableAudioSessionCategory;
/**
* 小游戏是否能激活AudioSession(调用setActive)的开关
* 是否允许小游戏适时激活AudioSession
* @param enable
* YES: (默认)允许小游戏适时激活AudioSession
* NO: 不允许小游戏适时激活AudioSession, 由应用激活AudioSession
*/
- (void)setEnableAudioSessionActive:(BOOL)enable;
/**
* 小游戏是否能激活AudioSession(调用setActive)的开关
* 是否允许小游戏适时激活AudioSession
* @return YES: (默认)允许小游戏适时激活AudioSession NO: 不允许小游戏适时激活AudioSession, 由应用激活AudioSession
*/
- (BOOL)getEnableAudioSessionActive;
/// 设置高级配置
/// @param advanceConfig 配置选项
- (void)setAdvancedConfig:(NSDictionary *_Nullable)advanceConfig;
/// 获取当前高级配置
- (NSDictionary *_Nullable)getAdvancedConfig;
@end

View File

@@ -60,4 +60,4 @@ NS_ASSUME_NONNULL_BEGIN
-(void) onPlayerStateChange:(nullable id<ISudFSMStateHandle>) handle userId:(NSString*) userId state:(NSString*) state dataJson:(NSString*) dataJson;
@end
NS_ASSUME_NONNULL_END
NS_ASSUME_NONNULL_END

View File

@@ -39,7 +39,7 @@ NS_ASSUME_NONNULL_BEGIN
/// @param state state
/// @param dataJson example: {"key": "value"}
/// @param listener 回调只表示APP状态通知到了小游戏不表示小游戏执行了别的逻辑代码比如游戏业务逻辑网络请求一般传null。
- (void)notifyStateChange:(const NSString *)state dataJson:(NSString *)dataJson listener:(ISudListenerNotifyStateChange) listener;
- (void)notifyStateChange:(const NSString *)state dataJson:(NSString *)dataJson listener:(nullable ISudListenerNotifyStateChange) listener;
/// 继续游戏
- (void) playMG;
@@ -47,7 +47,9 @@ NS_ASSUME_NONNULL_BEGIN
/// 暂停游戏
- (void) pauseMG;
/// 传入的音频数据必须是PCM格式采样率16000 采样位数16 声道数: MONO
/// 传入的音频切片是从RTC获取的PCM数据
/// PCM数据格式必须是采样率16000 采样位数16 声道数: MONO
/// PCM数据长度可以根据效果调整长度大: 精确度好但延时长 长度小:延时短但牺牲精确度
/// @param data pcm数据
- (void)pushAudio:(NSData *)data;

View File

@@ -0,0 +1,14 @@
//
// ISudListener.h
// Pods
//
// Created by kaniel on 2/14/25.
//
#ifndef ISudListener_h
#define ISudListener_h
#import "SudNetworkCheckParamModel.h"
typedef void (^INetworkDetectionListener)(SudNetworkDetectionResult *result);
#endif /* ISudListener_h */

View File

@@ -2,7 +2,7 @@
NS_ASSUME_NONNULL_BEGIN
@class GameInfo;
@class SudGameInfo;
typedef void (^ISudListenerGetFQSInfo)(int retCode, const NSString* retMsg);

View File

@@ -2,8 +2,8 @@
NS_ASSUME_NONNULL_BEGIN
@class GameInfo;
@class SudGameInfo;
typedef void (^ISudListenerGetMGInfo)(int retCode, const NSString* retMsg, GameInfo* _Nullable gameInfo);
typedef void (^ISudListenerGetMGInfo)(int retCode, const NSString* retMsg, SudGameInfo* _Nullable gameInfo);
NS_ASSUME_NONNULL_END

View File

@@ -4,4 +4,4 @@ NS_ASSUME_NONNULL_BEGIN
typedef void (^ISudListenerInitSDK)(int retCode, const NSString* retMsg);
NS_ASSUME_NONNULL_END
NS_ASSUME_NONNULL_END

View File

@@ -2,40 +2,20 @@
NS_ASSUME_NONNULL_BEGIN
/**
* Priority constant for the println method; use Log.v.
*/
#define SudLogVERBOSE 2
/**
* Priority constant for the println method; use Log.d.
*/
#define SudLogDEBUG 3
/**
* Priority constant for the println method; use Log.i.
*/
#define SudLogINFO 4
/**
* Priority constant for the println method; use Log.w.
*/
#define SudLogWARN 5
/**
* Priority constant for the println method; use Log.e.
*/
#define SudLogERROR 6
/**
* Priority constant for the println method.
*/
#define SudLogASSERT 7
/// 日志级别
typedef NS_ENUM(NSInteger, SudLogType) {
SudLogVERBOSE = 2,
SudLogDEBUG = 3,
SudLogINFO = 4,
SudLogWARN = 5,
SudLogERROR = 6,
SudLogASSERT = 7
};
@protocol ISudLogger <NSObject>
- (void) setLogLevel:(int) level;
- (void) log:(int) level tag:(NSString*) tag msg:(NSString*) msg detailLine:(NSString *)detailLine;
- (void) log:(int) level tag:(NSString*) tag msg:(NSString*) msg error:(NSError *) error detailLine:(NSString *)detailLine;
- (void) setLogLevel:(SudLogType) level;
- (void) log:(SudLogType) level tag:(NSString*) tag msg:(NSString*) msg detailLine:(NSString *)detailLine;
- (void) log:(SudLogType) level tag:(NSString*) tag msg:(NSString*) msg error:(nullable NSError *) error detailLine:(NSString *)detailLine;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,16 @@
//
// ISudPrivateListener.h
// SudMGP
//
// Created by kaniel on 2/14/25.
//
#ifndef ISudPrivateListener_h
#define ISudPrivateListener_h
typedef NS_ENUM(NSInteger, SudReqStepType) {
SudReqStepTypeFqs = 0,
SudReqStepTypeGetSdkToken = 1
};
typedef void (^ISudInitSdkListener)(int retCode, NSString*_Nullable retMsg, SudReqStepType stepType);
#endif /* ISudPrivateListener_h */

View File

@@ -0,0 +1,48 @@
//
// SudAiModel.h
// SudMGP
//
// Created by kaniel on 9/23/24.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
/// AI大模型模块
@interface SudAiModel : NSObject
/// AI大模型常规接口
/// - Parameters:
/// - param: json string参数,详细参数参阅文档
/// - completed: 完成时回调返回json string结果
+ (void)aiCommon:(NSString *_Nonnull)param
completed:(void(^_Nullable)(NSString *_Nonnull result))completed;
/// AI大模型sse形式接口
/// - Parameters:
/// - param: json string参数,详细参数参阅文档
/// - message: 事件回调数据
/// - completed: 完成回调
/// - fail: 失败回调
+ (void)aiSse:(NSString *_Nonnull)param
message:(void(^)(NSString *message))message
completed:(void(^_Nullable)(void))completed
fail:(void(^_Nullable)(NSInteger errCode, NSString *_Nonnull errMsg))fail;
/// 加载模型接口
/// - Parameters:
/// - param: json string参数,详细参数参阅文档
/// - success: 成功时返回的模型二进制数据
/// - fail: 失败回调
+ (void)loadModel:(NSString *_Nonnull)param
success:(void(^_Nullable)(NSData *_Nonnull data))success
fail:(void(^_Nullable)(NSInteger errCode, NSString *_Nonnull errMsg))fail;
/// 清空所有缓存
+ (void)clearAllCache;
/// 获取缓存路径
+ (NSString *)getCachePath;
@end
NS_ASSUME_NONNULL_END

View File

@@ -15,7 +15,10 @@
/// isTestEnv true:测试环境 false:生产环境
@property (nonatomic, assign) BOOL isTestEnv;
/// 用户id
@property (nonatomic, copy) NSString *userId;
- (instancetype)init;
- (BOOL)check;
@end
@end

View File

@@ -12,12 +12,15 @@
#import "ISudListenerGetFQSInfo.h"
#import "ISudListenerGetMGInfo.h"
#import "ISudPrivateListener.h"
#import "SudNetworkCheckParamModel+Internal.h"
#import "GameCheckoutStatus.h"
#import "ISudAPPD.h"
#import "ISudCfg.h"
#import "ISudFSMMG.h"
#import "ISudFSMStateHandle.h"
#import "ISudFSTAPP.h"
#import "ISudListener.h"
#import "ISudListenerGetMGList.h"
#import "ISudListenerInitSDK.h"
#import "ISudListenerNotifyStateChange.h"
@@ -25,10 +28,12 @@
#import "ISudListenerReportStatsEvent.h"
#import "ISudListenerUninitSDK.h"
#import "ISudLogger.h"
#import "SudAiModel.h"
#import "SudInitSDKParamModel.h"
#import "SudLoadMGMode.h"
#import "SudLoadMGParamModel.h"
#import "SudMGP.h"
#import "SudNetworkCheckParamModel.h"
FOUNDATION_EXPORT double SudMGPVersionNumber;
FOUNDATION_EXPORT const unsigned char SudMGPVersionString[];

View File

@@ -4,15 +4,17 @@
#import "ISudListenerGetMGList.h"
#import "ISudListenerUninitSDK.h"
#import "ISudListenerReportStatsEvent.h"
#import "ISudCfg.h"
#import "ISudLogger.h"
#import "SudInitSDKParamModel.h"
#import "SudLoadMGParamModel.h"
#import "SudNetworkCheckParamModel.h"
#import "ISudListener.h"
NS_ASSUME_NONNULL_BEGIN
@protocol ISudFSTAPP;
@protocol ISudFSMMG;
@protocol ISudCfg;
@protocol ISudListenerPrepareGame;
@class SudInitSDKParamModel;
@class SudLoadMGParamModel;
@interface SudMGP : NSObject
@@ -36,11 +38,12 @@ NS_ASSUME_NONNULL_BEGIN
* @param appKey 小游戏平台生成
* @param isTestEnv true:测试环境 false:生产环境
* @param listener ISudListenerInitSDK
* @deprecated Use initSDK:listener: instead
*/
+ (void)initSDK:(NSString*_Nonnull)appId
appKey:(NSString*_Nonnull)appKey
isTestEnv:(BOOL)isTestEnv
listener:(ISudListenerInitSDK _Nullable )listener;
listener:(ISudListenerInitSDK _Nullable )listener __attribute__((deprecated("Use initSDK:listener: instead")));
/**
* 初始化SDK
* @param model SudInitSDKParamModel
@@ -72,6 +75,7 @@ NS_ASSUME_NONNULL_BEGIN
* @param fsmMG ISudFSMMG
* @param rootView 用于显示游戏的根视图gameViewContainer
* @return ISudFSTAPP
* @deprecated Use loadMG:fsmMG: instead
*/
+ (id<ISudFSTAPP>_Nonnull)loadMG:(NSString*_Nonnull)userId
roomId:(NSString*_Nonnull)roomId
@@ -79,7 +83,7 @@ NS_ASSUME_NONNULL_BEGIN
mgId:(int64_t)mgId
language:(NSString*_Nonnull)language
fsmMG:(id<ISudFSMMG>_Nonnull)fsmMG
rootView:(UIView*_Nonnull)rootView;
rootView:(UIView*_Nonnull)rootView __attribute__((deprecated("Use loadMG:fsmMG instead")));
/**
* 加载游戏
@@ -99,22 +103,23 @@ NS_ASSUME_NONNULL_BEGIN
+ (bool)destroyMG:(id<ISudFSTAPP>_Nonnull) fstAPP;
/**
* 预加载游戏包列表
* @param mgIdList 游戏ID列表
*/
* 预加载游戏包列表
* @param mgIdList 游戏ID列表
*/
+ (void) prepareGameList:(NSArray<NSNumber *> *) mgIdList listener:(id<ISudListenerPrepareGame>) listener;
/**
* 取消预加载游戏包
* @param mgIdList 游戏ID列表
*/
* 取消预加载游戏包
* @param mgIdList 游戏ID列表
*/
+ (void) cancelPrepareGameList:(NSArray<NSNumber *> *) mgIdList;
/**
* 设置统计上报userId
* @param userId 用户ID
* @deprecated deprecated since v1.3.5
*/
+ (void)setUserId:(NSString*)userId;
+ (void)setUserId:(NSString*)userId __attribute__((deprecated("deprecated since v1.3.5")));
/**
* 设置统计上报回调
@@ -127,13 +132,15 @@ NS_ASSUME_NONNULL_BEGIN
* 设置日志等级
* @param logLevel 输出log的等级,SudLogVERBOSE,SudLogDEBUG,SudLogINFO 见ISudLogger.h
*/
+ (void)setLogLevel:(int)logLevel;
+ (void)setLogLevel:(SudLogType)logLevel;
/// 获取SDK本地日志存储路径
+ (NSString *_Nonnull)getLogDirPath;
/// 设置是否由SDK设置AudioSession
/// @param autoSet 是否由SDK自动设置
+ (void)autoSetAudioSession:(BOOL)autoSet;
/// 开启网络检测检测当前网络环境下SDK连通性
/// @param paramModel 检测参数
/// @param listener 检测结果回调
+ (void)startNetworkDetection:(SudNetworkDetectionParamModel *)paramModel listener:(INetworkDetectionListener)listener;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,27 @@
//
// SudNetworkCheckParamModel+SudNetworkCheckParamModel_Internal.h
// SudMGP
//
// Created by kaniel on 2/18/25.
//
#import "SudNetworkCheckParamModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface SudNetworkDetectionStep (Internal)
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *url;
- (void)addDetail:(NSString *)type timestamp:(long)timestamp;
@end
@interface SudNetworkDetectionStepResult (Internal)
+(instancetype)newWithCode:(NSInteger)code msg:(NSString *_Nullable)msg;
@end
@interface SudNetworkDetectionResult (Internal)
- (void)addStep:(SudNetworkDetectionStep *)step;
- (id)reportInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,73 @@
//
// SudNetworkCheckParamModel.h
// SudMGP
//
// Created by kaniel on 2/14/25.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
// 检测状态
FOUNDATION_EXPORT NSString *const SudNetworkDetectionStatus_WAITING;// 等待
FOUNDATION_EXPORT NSString *const SudNetworkDetectionStatus_CHECKING;// 检测中
FOUNDATION_EXPORT NSString *const SudNetworkDetectionStatus_COMPLETED;// 检测完成
// 网络检测详情的具体类型
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_CALL_START; // 请求开始
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_DNS_START; // dns开始解析
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_DNS_END; // dns解析完成
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_CONNECT_START; // 连接开始
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_SECURE_CONNECT_START; // SSL/TLS连接开始
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_SECURE_CONNECT_END; // SSL/TLS连接完成
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_CONNECT_END; // 连接完成
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_REQUEST_HEADERS_START; // 发送headers开始
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_REQUEST_HEADERS_END; // 发送headers完成
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_REQUEST_BODY_START; // 发送body开始
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_REQUEST_BODY_END; // 发送body完成
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_RESPONSE_HEADERS_START; // 开始返回headers
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_RESPONSE_HEADERS_END; // 返回headers完成
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_RESPONSE_BODY_START; // 开始返回body
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_RESPONSE_BODY_END; // 返回body完成
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_CALL_END; // 请求完成
FOUNDATION_EXPORT NSString *const SudNetworkDetectionDetailType_CALL_FAILED; // 请求错误
// 网络检测参数
@interface SudNetworkDetectionParamModel : NSObject
@property (nonatomic, assign) BOOL isTestEnv;
@property (nonatomic, strong, nonnull) NSString *appId;
@property (nonatomic, strong, nonnull) NSString *appKey;
@property (nonatomic, strong, nonnull) NSString *userId;
@end
// 小步骤里面的检测结果
@interface SudNetworkDetectionStepResult : NSObject
@property (nonatomic, assign) NSInteger code; // 错误码0为成功非0为失败
@property (nonatomic, strong, nullable) NSString *msg; // 消息文本
@end
// 网络检测详情
@interface SudNetworkDetectionDetail : NSObject
@property (nonatomic, assign) NSString *type; // 类型
@property (nonatomic, assign) long timestamp; // 时间戳
@end
// 网络检测步骤信息
@interface SudNetworkDetectionStep : NSObject
@property (nonatomic, assign) NSInteger identifier; // 唯一id
@property (nonatomic, strong, nonnull) NSString *protocol; // 网络协议https、wss
@property (nonatomic, strong, nonnull) NSString *method; // 请求方法GET、POST
@property (nonatomic, strong) NSString * status; // 检测状态
@property (nonatomic, strong, nullable) NSArray<SudNetworkDetectionDetail *> *detailList; // 检测详情
@property (nonatomic, strong, nonnull) SudNetworkDetectionStepResult *result; // 当前步骤的检测结果
@end
// 网络检测结果
@interface SudNetworkDetectionResult : NSObject
@property (nonatomic, assign) NSInteger code; // 错误码0为成功非0为失败
@property (nonatomic, strong, nullable) NSString *msg; // 消息文本
@property (nonatomic, strong, nonnull) NSArray<SudNetworkDetectionStep *> *stepList; // 步骤列表
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyCollectedDataTypes</key>
<array>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeDeviceID</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<true/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
</array>
</dict>
</array>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
</array>
</dict>
</plist>

Binary file not shown.

View File

@@ -53,6 +53,9 @@ NSString * const kNewFacePath = @"MoliFaceCache";
NSString*faceDirectory = [documentsDirectory stringByAppendingPathComponent:@"Face"];
///
NSString *version = [[NSUserDefaults standardUserDefaults]objectForKey: kRoomFaceVersion];
//#if DEBUG
// version = @"1";
//#endif
if (version == nil || version.integerValue < self.version.integerValue) {///
if (self.zipUrl.length > 0 && [self.zipUrl hasPrefix:@"http"]) {
NSURL *URL = [NSURL URLWithString:self.zipUrl];

View File

@@ -141,6 +141,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
for (XPMessageInfoModel *model in datas) {
switch (model.first) {
case NIMMessageTypeText:
case CustomMessageType_Face:
[self.datasource_chat addObject:model];
break;
case CustomMessageType_Gift:
@@ -525,6 +526,11 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
NIMCustomObject *obj = (NIMCustomObject *)message.messageObject;
if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentModel class]]) {
AttachmentModel *attachment = (AttachmentModel *)obj.attachment;
if (attachment.first == CustomMessageType_Face && attachment.second == Custom_Message_Sub_Face_Send) {
return NO;
}
if (attachment.first == CustomMessageType_User_Enter_Room && attachment.second == Custom_Message_Sub_User_Enter_Room) {
return NO;
}
@@ -816,6 +822,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
self.isMiniEnter = NO;
NIMCustomObject *obj = (NIMCustomObject *)message.messageObject;
//
if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentModel class]]) {
AttachmentModel *attachment = (AttachmentModel *)obj.attachment;
switch (attachment.first) {
@@ -897,8 +904,7 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
if (model.screenType == 1 || model.enterHide == 1) {
return;
}
NSInteger index = 0;
for (RoomEnterCPListModel *cp in model.cpList) {
for (int index = 0; index<model.cpList.count; index++) {
attachment.seq = index;
index += 1;
[(NIMCustomObject *)message.messageObject setAttachment:attachment];
@@ -907,13 +913,38 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey";
}
}
break;
case CustomMessageType_Face: {
NSInteger delay = 0;
if ([message.messageObject isKindOfClass:[NIMCustomObject class]]) {
NIMCustomObject *obj = (NIMCustomObject *)message.messageObject;
AttachmentModel *attachment =(AttachmentModel *)obj.attachment;
if (attachment.first == 9 && attachment.second == 91) {
NSArray *datas = [attachment.data objectForKey:@"data"];
NSDictionary *obj = [datas xpSafeObjectAtIndex:0];
if (obj) {
NSArray *results = [obj objectForKey:@"resultIndexes"];
if (results.count > 0) {
delay = 2.5;
}
}
}
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self addRoomMessage:message];
});
}
break;
default:
break;
}
}
if (self.hostDelegate.getRoomInfo.isCloseScreen) {
return;
}
// isCanDisplayMessage
if ([self isCanDisplayMessage:message]) {
[self addRoomMessage:message];
}

View File

@@ -242,11 +242,7 @@
//
RoomFaceInfoModel *faceModel = [[XPRoomFaceTool shareFaceTool] findFaceInfoById:faceInfo.faceId];
#if DEBUG
// faceModel.displayType = FaceDisplayType_OverLay;
#endif
if (faceModel.displayType == FaceDisplayType_OnlyOne && faceCount > 0) {
UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
//
@@ -320,6 +316,34 @@
currentIndex++;
}
}];
} else if (faceModel.displayType == FaceDisplayType_OnlyOneLine) {
//
size = CGSizeMake(size.width * 3, size.height);
UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
//
NSInteger maxImages = MIN(faceCount, 3);
// 4px
CGFloat imageSpacing = -4.0;
CGFloat itemWidth = width;
// +
CGFloat totalWidth = itemWidth * maxImages + imageSpacing * (maxImages - 1);
// X使
CGFloat startX = (size.width - totalWidth) / 2;
for (NSInteger i = 0; i < maxImages; i++) {
NSInteger index = [faceInfo.resultIndexes[i] integerValue];
UIImage *image = [[XPRoomFaceTool shareFaceTool] findFaceImageById:faceInfo.faceId index:index];
if (!image) continue;
// 使
CGFloat xPosition = startX + i * (itemWidth + imageSpacing);
CGRect rect = CGRectMake(xPosition,
(size.height - height) / 2,
itemWidth,
height);
[image drawInRect:[self aspectFitRectForImage:image.size inRect:rect]];
}
}
result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();